g ++ matriz de tamaño variable sin advertencia?

int a; cin >> a; int ints[a]; 

¿Por qué esto no arroja ningún tipo de advertencia durante la comstackción? ¿Cómo puedo saber cuándo esta matriz está usando realmente el montón o la stack?

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

ISO C ++ no permite el uso de matrices de longitud variable , lo que g++ te dice felizmente si aumentas la rigurosidad al pasarle el indicador -pedantic .

Usar -pedantic emitirá una advertencia sobre cosas que rompen el estándar. Si quieres que g++ emita un error y con esta comstackción de basura debido a tales cosas; use -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]; ^