4
當我的輸入大小足夠大時,分段故障會在項目中使用可變長度數組的地方發芽。我想將它們全部移除,如何讓GCC顯示它找到的每個可變長度數組的聲明?在代碼中查找可變長度數組
我已經嘗試使用-Wstack-usage=1000
和過濾消息warning: stack usage might be unbounded
,但這給了我的功能,而不是聲明。有沒有更好的辦法?
當我的輸入大小足夠大時,分段故障會在項目中使用可變長度數組的地方發芽。我想將它們全部移除,如何讓GCC顯示它找到的每個可變長度數組的聲明?在代碼中查找可變長度數組
我已經嘗試使用-Wstack-usage=1000
和過濾消息warning: stack usage might be unbounded
,但這給了我的功能,而不是聲明。有沒有更好的辦法?
我很確定我之前做過這些,並且感謝評論,我再次找到了解決方案:使用-Wvla
編譯器開關。
使用選項'-std = c89 -pedantic'然後'警告:ISO C90禁止可變長度數組' – BLUEPIXY
刪除所有的VLA聽起來像過度殺傷。您只需刪除尺寸不可預測的超大尺寸或VLA。也許你可以grep他們。 – Olaf
那麼,我真的不認爲VLA的大小是一個「靜態常量」變量...... – lvella