Sobes.tech
Junior — Middle

Que signifie le dépassement de pile lors de l'exécution d'un programme?

sobes.tech IA

Réponse de l'IA

Le dépassement de pile (stack overflow) se produit lorsqu’un programme utilise plus de mémoire de pile que celle allouée par le système d’exploitation. Cela se produit généralement en raison d’une récursion infinie ou très profonde, ou par l’allocation de variables locales trop grandes.

La pile est une zone de mémoire où sont stockées les variables locales et les adresses de retour des fonctions. Si la pile déborde, le programme se termine de manière anormale avec une erreur.

Exemple de récursion infinie provoquant un dépassement de pile :

void Recursive()
{
    Recursive(); // appel à lui-même sans condition de sortie
}

Recursive();

Pour éviter le dépassement de pile, il faut contrôler la profondeur de la récursion et la taille des données locales.