g++ 可变大小数组无警告

g++ variable size array no warning?

本文关键字:数组 警告 小数 g++      更新时间:2023-10-16
int a;
cin >> a;
int ints[a];

为什么在编译时不会引发任何类型的警告?我怎么知道这个数组的东西什么时候实际使用堆或堆栈?

g++ -std=c++11 -Wall *.cpp -o main

ISO C++不允许使用可变长度数组g++很高兴地告诉您,如果您通过传递 -pedantic 标志来增加它的严格性。

使用 -pedantic 将发出有关违反标准的警告。如果你想g++发出错误,并因为这样的事情而进行这种拒绝编译;使用-pedantic-errors .


g++ -Wall -pedantic -std=c++11 apa.cpp

apa.cpp: In function ‘int main(int, char**)’:
apa.cpp:8:13: warning: ISO C++ forbids variable length array ‘ints’ [-Wvla]
   int ints[a];
             ^
apa.cpp:8:7: warning: unused variable ‘ints’ [-Wunused-variable]
   int ints[a];
       ^