Cela me tracasse depuis longtemps maintenant: Disons que j'ai une fonction:C++: Déclarations de variables de fonction, comment ça fonctionne en interne?
void test(){
int t1, t2, t3;
int t4 = 0;
int bigvar[10000];
// do something
}
Comment l'ordinateur gérer les allocations de mémoire pour les variables?
J'ai toujours pensé que l'espace des variables est sauvegardé dans le fichier .exe que l'ordinateur lira alors, est-ce correct? Mais pour autant que je sache, le tableau bigvar
ne prend pas 10000 éléments d'espace int
dans le fichier .exe, car il n'est pas initialisé. Alors, comment fonctionne son allocation de mémoire quand j'appelle la fonction?
L'exe est stocké dans un _disk_, et le code compilé y est stocké. Mais quand il est exécuté, il prend la mémoire de l'unité _processor_. Les octets du disque ne correspondent pas aux octets requis pour les variables. –
http://stackoverflow.com/questions/556714/how-does-the-stack-work-in-assembly-language – karlphillip