194 votes

Où en mémoire sont stockées mes variables en C ?

En considérant que la mémoire est divisée en quatre segments : les données, le tas, la pile et le code, où sont stockés en mémoire les variables globales, les variables statiques, les types de données constants, les variables locales (définies et déclarées dans les fonctions), les variables (dans la fonction principale), les pointeurs et l'espace alloué dynamiquement (à l'aide de malloc et calloc) ?

Je pense qu'ils seraient répartis comme suit :

  • Variables globales -------> données
  • Variables statiques -------> données
  • Types de données constants -----> code
  • Variables locales (déclarées et définies dans les fonctions) --------> pile
  • Variables déclarées et définies dans la fonction principale -----> heap
  • Les pointeurs (par exemple, char *arr , int *arr ) -------> tas
  • Espace alloué dynamiquement (en utilisant malloc et calloc) --------> pile

Je me réfère à ces variables uniquement du point de vue du C.

Veuillez me corriger si je me trompe car je suis nouveau dans le domaine du C.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X