Éditeurs de liens, chargeurs et exécutables
En C, quelle affirmation concernant la valeur initiale d'une variable locale et d'une variable globale déclarées sans valeur initiale est correcte ?
- ALes deux commencent toujours à 0
- BLa variable locale commence à 0, mais la valeur de la variable globale est indéterminée
- CLa variable globale commence à 0, mais la valeur de la variable locale est indéterminée
Afficher la réponse et l'explication
Réponse : C. La variable globale commence à 0, mais la valeur de la variable locale est indéterminée
Les variables globales et statiques sont placées dans .bss, rempli de 0 au démarrage du programme, et commencent donc à 0. Les variables locales sont créées sur la pile à chaque appel de fonction ; comme les remplir de 0 à chaque fois prendrait du temps, des données ayant précédemment occupé cet emplacement peuvent subsister. Lire une variable locale non initialisée peut donner des résultats différents à chaque exécution ; il faut donc toujours l'initialiser avant usage.
Continuer : 9 autres questions sur Éditeurs de liens, chargeurs et exécutables