Visualiseur mémoire

Heap vs Stack

Naviguez ligne par ligne et observez exactement ce qui se passe en mémoire — en C et en Python en parallèle.

← → pour naviguer entre les étapes

1

Entrée dans main()

Un frame est créé sur la stack pour main(). La stack grandit vers les adresses basses.

gestion manuelle
C— cliquez sur les étapes pour naviguer
1int main() {
2 int x = 42;
3 float y = 3.14;
4 char c = 'A';
5 return 0;
6}
📚

Stack

automatique · LIFO · taille fixe

main()▶ en cours
aucune variable
🗄️

Heap

manuel (C) · GC (Python) · taille dynamique

vide

Récapitulatif

Stack 📚Heap 🗄️
Allocationautomatique (entrée de scope)malloc() / new / Box::new()
Libérationautomatique (sortie de scope)free() obligatoire en C
En Pythonrefs de 8B + frame objects (heap!)tous les objets Python
Tailleconnue à la compilationdynamique, inconnue
Vitessetrès rapide (déplace 1 pointeur)lent (syscall brk/mmap)
Limite≈ 8 Mo (stack overflow)RAM disponible (plusieurs Go)
Durée de viescope lexical de la variablejusqu'à free() / drop() / GC
Erreurs C— (automatique)double free, dangling, leak