2016-09-29 83 views
1
#include<stdio.h> 

int main() 
{ 
    int row, col; 
    printf("Enter rows and columns for your grid"); 
    scanf_s(" %i%i", &row, &col); 
    int Array[row][col]; 
    return 0; 
} 

這是我的編程指導給我們的例子,但是我一直無法使它工作。我的編譯器(Visual Studio 2015)不停地給我錯誤C2131「表達式沒有計算爲常量」有沒有什麼辦法可以使這個工作?創建一個可變長度數組需要幫助

+0

如果你有編譯器的選擇(你可能會做,因爲它是不太可能你的老師會給你不支持你應該使用編譯器爲例)然後使用gcc – Tibrogargan

+2

MSVC不支持可變長度數組。 –

+0

使用現代的,符合標準的編譯器,如gcc或clang。 – Olaf

回答

0

你必須使用malloc

int **Array; 
Array = malloc(sizeof(int*)*row); 
for(int i=0;i<row;i++) 
Array[i] = malloc(sizeof(int)*col); 
1

的VLA是C99的功能,同時支持MSVC C89使用動態內存分配。根據MSDN documentation for VS 2015

可變長度數組目前不支持在Visual C++中。

+0

VS2015是否屬實? –

+0

@EugeneSh .:鏈接是針對VS 2015的。 –

+0

嗯。那麼頁面上的代碼是怎麼演示的呢? –