Mémoire Pile vs Tas
Fait partie de la section Logique & Flux du Journey C de Coddy. Leçon 31 sur 63.
Lorsque votre programme C s’exécute, il utilise deux zones de mémoire distinctes : la pile et le tas. Comprendre la différence entre ces zones de mémoire est essentiel pour programmer efficacement en C, en particulier lorsque vous travaillez avec des pointeurs et l’allocation dynamique de mémoire.
La pile est utilisée pour l'allocation de mémoire statique. C'est là que sont stockées vos variables locales, vos paramètres de fonction et les informations d'appel de fonction. La pile est gérée automatiquement par le système - lorsque vous déclarez une variable locale, de la mémoire est allouée sur la pile, et lorsque la variable sort de sa portée, cette mémoire est automatiquement libérée.
void function() {
int x = 10; // Alloué sur la pile
char arr[100]; // Également alloué sur la pile
// La mémoire est automatiquement libérée à la fin de la fonction
}Le tas (heap) est utilisé pour l'allocation dynamique de mémoire. Il s'agit d'un pool de mémoire plus important que vous pouvez demander pendant l'exécution du programme.
Contrairement à la pile, le tas nécessite une gestion manuelle - vous devez explicitement demander de la mémoire et la libérer plus tard lorsque vous avez terminé. Cela vous donne plus de contrôle mais aussi plus de responsabilité.
La différence essentielle réside dans la gestion : la mémoire de la pile est automatique et limitée en taille, tandis que la mémoire du tas est manuelle et beaucoup plus grande. Dans les prochaines leçons, tu apprendras à travailler avec la mémoire du tas à l’aide de fonctions comme malloc() et free().
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Les bases des pointeurs
Qu'est-ce qu'un pointeur ?Déclaration de pointeursL'opérateur d'adresse (&)L'opérateur de déréférencement (*)Pointeurs NULLRécapitulatif : Les bases des pointeurs4Projet : Utilitaire de texte simple
Présentation du projetCompter les caractères2Pointeurs et Tableaux
Noms de tableaux comme pointeursÉléments de tableau - PointeursArithmétique des pointeursComparaison de pointeursRécapitulatif : Parcours de tableau par pointeur5Pointeurs et fonctions
Passage par valeurPassage de pointeurs aux fonctionsModifier des variables via des pointeursUn exemple classique : SwapPassage de tableaux aux fonctionsRécapitulatif : Pointeurs comme arguments de fonction3Tableaux de caractères et chaînes
Les chaînes comme tableaux de charLe terminateur nulSaisie de chaînes avec scanfUtilisation de strlen()Utilisation de strcpy()Utilisation de strcat()Utilisation de strcmp()Récapitulatif : Fonctions de base sur les chaînesEntraînez-vous par vous-même : Compilateur C en ligne