Recursif

Fermé
snake020 Messages postés 18 Date d'inscription lundi 8 janvier 2007 Statut Membre Dernière intervention 22 janvier 2009 - 8 janv. 2007 à 12:54
snake020 Messages postés 18 Date d'inscription lundi 8 janvier 2007 Statut Membre Dernière intervention 22 janvier 2009 - 8 janv. 2007 à 13:16
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

2 réponses

blux Messages postés 26553 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 27 décembre 2024 3 319
8 janv. 2007 à 13:12
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...
0
snake020 Messages postés 18 Date d'inscription lundi 8 janvier 2007 Statut Membre Dernière intervention 22 janvier 2009
8 janv. 2007 à 13:16
merci pout tout ,a+
0