我有一些代碼,初始化數組,具體地C-字符串,使用變量。例如...可變大小數組工作可變地(計算機之間)
int len = getLength();
char cstr[len+1] = {'\0'};
這編譯和運行在我的代碼完美無瑕。然而,當我的同事的一個運行相同的代碼,他得到編譯器錯誤...
我們使用Ubuntu和GCC都可變大小的物體可能不被初始化
/G ++。我們比較了編譯器標誌,我們都使用--std=c++11
。所有其他的標誌也是相同的(-Wall
,-Wextra
和-g
)。
爲什麼僅工作在我的電腦上運行此代碼,而不是他的?我怎樣才能使它工作?
@SergeyA:構建知識庫是Stackoverflow的一個聲明目標。整個評分系統只是一個副作用。 –
@SergeyA:你是什麼意思*如果*這是促進?它正在被提升,這不是什麼新鮮事。 Stackoverflow還沒有變成Facebook,這裏有一些很好的答案是自我回答。所以有什麼問題? –
我會在這裏補充一點,我只是共享信息,因爲這沒有很好的文檔記錄(因爲它對於更有經驗的程序員來說是如此明顯),所以直到了解了具有這種效果的編譯器版本之前,這對他們來說是完全神祕的。現在Google會很快得出答案。 StackOverfow的排名高於搜索結果中的博客,所以每個人都可以在這裏發佈。 – CodeMouse92