我已經聲明瞭一個2D全局數組變量,像這樣:無法初始化2D陣列
int grid_2d_array[ROWS][COLUMNS];
然後在main
我已經與硬編碼值來初始化:
grid_2d_array[ROWS][COLUMNS] = {{5, 7, 2, 8, 3, 6, 1, 4},
....
{1, 6, 3, 2, 4, 8, 9, 5}
};
實施例:
#include <stdio.h>
#define ROWS 9
#define COLUMNS 9
/* Global variable. */
int grid_2d_array[ROWS][COLUMNS];
int main()
{
/* Initialze the 2D array. */
grid_2d_array[ROWS][COLUMNS] = {{5, 7, 2, 8, 3, 6, 1, 4},
....
{1, 6, 3, 2, 4, 8, 9, 5}
};
return 0;
}
但是當我嘗試編譯源代碼,GCC提供了以下錯誤:
source_file.c: In function ‘main’:
source_file.c:45:34: error: expected expression before ‘{’ token
grid_2d_array[ROWS][COLUMNS] = {{5, 7, 2, 8, 3, 6, 1, 4},
^
我不確定爲什麼海灣合作委員會不承認grid_2d_array
作爲一個全局變量。
如果我在main
中重新聲明上述變量,問題就消失了。
我運行GCC版本:gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04)
請提供其他人可以嘗試編譯的適當的最小示例。現在還不清楚定義在哪裏以及是否有其他影響問題。 –
您需要爲您的數組及其嵌套數組分配內存。 – vdolez
'grid_2d_array [ROWS] [COLUMNS] ='指定數組的一個元素(不存在)。嘗試刪除'[行數] [柱]'和'只是使用grid_2d_array = {/ *你的東西放在這裏* /};'。 –