Sono relativamente nuovo per C++, e fin dall'inizio che è stato perforato in me che non si può fare qualcosa di similePerché il C++ consente matrici di lunghezza variabile che non sono allocate dinamicamente?
int x;
cin >> x;
int array[x];
Invece, è necessario utilizzare la memoria dinamica. Tuttavia, ho scoperto di recente che il precedente sarà compilare (anche se ottengo un avvertimento -pedantic che dice che è vietato da ISO C++). So che è ovviamente una cattiva idea farlo se non è consentito dallo standard, ma in precedenza non sapevo nemmeno che fosse possibile.
La mia domanda è, perché g ++ consente array di lunghezza variabile che non sono allocati dinamicamente se non è consentito dallo standard? Inoltre, se è possibile per il compilatore farlo, perché lo non è nello standard?
Per quanto riguarda la tua ultima domanda, perché C++ non li supporta, potresti anche consultare questa domanda: http://stackoverflow.com/questions/1887097/variable-length-arrays-in-c e comp.lang. thread C++ collegato nella risposta accettata. –