Recursif
snake020
Messages postés
18
Statut
Membre
-
snake020 Messages postés 18 Statut Membre -
snake020 Messages postés 18 Statut Membre -
salut tt le monde,voila jai un petit probleme,
on considere par exemple une fonction marcher() definit comme suit
void marcher()
{un_pas_en_avant()
marcher()
}
cette fonction fait appelle a elle meme et devrait boucler infiniment(a mon avis car ya pas de condition darret)
mais dautre pensent quel va sarreter car la pile dexecution est fini,moi jy comprends rien
pleaz help
on considere par exemple une fonction marcher() definit comme suit
void marcher()
{un_pas_en_avant()
marcher()
}
cette fonction fait appelle a elle meme et devrait boucler infiniment(a mon avis car ya pas de condition darret)
mais dautre pensent quel va sarreter car la pile dexecution est fini,moi jy comprends rien
pleaz help
2 réponses
Salut,
il n'y a pas de condition d'arrêt donc la fonction va "théoriquement" se poursuivre à l'infini...
MAIS, à l'exécution d'un programme on réserve de la place en mémoire pour les appels, la sauvegarde des registres... On va se retrouver avec un empilage de donnée qui saturera bien vite la mémoire, provoquant l'arrêt du programme sur condition d'erreur...
il n'y a pas de condition d'arrêt donc la fonction va "théoriquement" se poursuivre à l'infini...
MAIS, à l'exécution d'un programme on réserve de la place en mémoire pour les appels, la sauvegarde des registres... On va se retrouver avec un empilage de donnée qui saturera bien vite la mémoire, provoquant l'arrêt du programme sur condition d'erreur...