簡體   English   中英

二維數組-表達式必須具有常量值錯誤

[英]2-D Array - Expression must have a constant value error

我正在嘗試在Reddit上進行拉丁廣場每日挑戰賽 ,我想使用一個數組,該數組通過使用以下代碼在運行時分配大小:

int n;
cout << "Please enter the size of the Latin Square: ";
cin >> n;
int latinsquare[n][n];

這在聯機編譯器中有效,但在Visual Studio 17中不可用。在Microsoft C ++編譯器中是否可以這樣做?

VLA不是標准的一部分。 如果要使用它們,則需要編譯器擴展。

但是你可能

  • 通過newdelete運算符動態創建它

  • 使用std::vector

這是因為可變長度數組在C ++中是非標准的( 為什么? )。 您可以使用new來分配latinsquare ,但是在C ++中,慣用的方式是使用vectors向量:

std::vector<std::vector<int>> latinsquare(n, std::vector<int>(n, 0));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM