
variable length array 在 c++里应该是不支持的吧, 但我用 gcc 可以编译啊,有没有办法关掉呢?
int main() { int a; cin >> a; int b[a]; }
1 elfive May 10, 2022 via iPhone 类似于标准库里的 alloca 函数,他也是在栈上申请的内存,不是堆里面 |
2 inhzus May 10, 2022 via iPhone 善用搜索引擎 Google:gcc disable variable length array 第一个搜索结果,stack overflow 回答: -Werror=vla |
3 nlzy May 10, 2022 -Werror=vla |
5 codehz May 10, 2022 via Android 建议直接 -pedantic -Werror=pedantic |
6 void59468 OP @codehz 好像并不能把 warning 转成 error <a href="https://ibb.co/nn5hb58"><img src="https://i.ibb.co/3MLt7LY/Clipboard02.jpg" alt="Clipboard02" border="0"></a> |
7 3dwelcome May 10, 2022 alloca 的分配性能和运行速度是内存管理器里最快的,比 malloc 快多了,很适合小数组,关掉干嘛。 |