Menu
Coddy logo textTech

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.

quiz iconTestez-vous

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

Entraînez-vous par vous-même : Compilateur C en ligne