我試圖從命令行參數中獲取某個值。然後使用這個值,我將在我的結構中設置整數數組的大小。使用命令行參數聲明結構
我的代碼:
int main(int argc, char* argv[])
{
int size_of_heap = atoi(argv[1]);
struct s_status
{
int block_size[size_of_heap];
char status[size_of_heap];
};
它給了我「變長數組的聲明無效」的錯誤。
我不明白爲什麼它不起作用,因爲size_of_heap現在應該是通過atoi()從字符串轉換後的整數,所以block_size [size_of_heap]應該與具有block_size [任意數量]相同, 。
預先感謝
它需要是一個常數。 C不允許你聲明可變長度的數組。試試'malloc'。 – irrelephant
@irrelephant其實它允許它。現在已經這麼做了13年;-) –
@irrelephant錯誤..取決於您使用的是哪種標準。 – dmckee