Lorsque la mémoire est allouée à des variables locales dans le C

Que les variables locales sont aussi appelés variables automatiques, et sont censés être alloué de la mémoire au moment de l'exécution, lorsque la fonction est accessible.

int main(){
    int a; //declaration 
    return 0;
}

int main(){
    int a[]; //compilation error, array_size missing
    return 0;
}

int main(){
    int a[2]; //declaration, but can't work without array_size, 
              //so at compile time it is checked!
    return 0;
}

Ma question est de savoir si c'est juste une règle de donner array_size dans la déclaration en C, ou que la mémoire est allouée au moment de la compilation pour array (encore variable locale)

Comment ça fonctionne?

Un tableau est une variable que par la programmation en C par K&R. pg no 161.

Comment pourrait éventuellement être une variable allouée au moment de la compilation?
Il n'y a pas tout les tableaux statiques dans ce code.
Par le compilateur, bien sûr. Je suis sûr qu'il alloue beaucoup. Oh.. tu parlais dans le programme en cours de compilation.. nm. =P
que serait un local fixe-longueur variable de tableau.
Nah. Le compilateur émet les instructions de lors de la compilation que le programme allouer de la mémoire lors de l'exécution.

OriginalL'auteur linuxD | 2013-03-13