【问题标题】:Finding variable-length arrays in code在代码中查找变长数组
【发布时间】:2016-07-01 00:29:37
【问题描述】:

当我的输入足够大时,在项目中使用可变长度数组的地方会出现分段错误。我想将它们全部删除,如何让 GCC 显示它找到的可变长度数组的每个声明?

我尝试使用-Wstack-usage=1000 并过滤消息warning: stack usage might be unbounded,但这给了我功能,而不是声明。有没有更好的办法?

【问题讨论】:

  • 使用选项-std=c89 -pedantic 然后warning: ISO C90 forbids variable length array
  • 删除所有 VLA 听起来有点矫枉过正。您只需要删除大小不可预测的超大或 VLA。也许你可以 grep 他们。
  • 好吧,我真的不考虑大小为static const 变量的VLA...
  • @BLUEPIXY 不能那样做。休息for(int i = 0;....
  • 如果知道包含 VLA 的函数还不够,我只是多么糟糕,我有点担心。

标签: c gcc gcc-warning variable-length-array


【解决方案1】:

我很确定我以前做过,感谢 cmets,我再次找到了解决方案:使用 -Wvla 编译器开关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 2016-11-09
    • 1970-01-01
    相关资源
    最近更新 更多