array di dimensioni variabili g ++ nessun avviso?

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

Perché questo non lancia alcun tipo di avvertimento durante la compilazione? Come faccio a sapere quando questa cosa dell’array utilizza effettivamente l’heap o lo stack?

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

ISO C ++ non consente l’uso di matrici di lunghezza variabile , che g++ dice volentieri se si aumenta la severità di esso passandogli il flag -pedantic .

Usando -pedantic pubblicherà un avvertimento su cose che infrangono lo standard. Se vuoi che g++ emetta un errore e con questa compilazione di rifiuti a causa di tali cose; usa -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]; ^