Erreur de segmentation fonction reccursive
Résolu/Fermé
rocksider
Messages postés
106
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
16 mars 2012
-
9 janv. 2009 à 14:54
rocksider Messages postés 106 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 16 mars 2012 - 9 janv. 2009 à 15:16
rocksider Messages postés 106 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 16 mars 2012 - 9 janv. 2009 à 15:16
A voir également:
- Erreur de segmentation fonction reccursive
- Erreur 0x80070643 - Guide
- Fonction si et - Guide
- Fonction somme excel - Guide
- Code erreur f3500-32 ✓ - Forum Bbox Bouygues
- Erreur 10016 epson - Forum Imprimante
2 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
9 janv. 2009 à 15:05
9 janv. 2009 à 15:05
Salut,
A mon avis tu dépasses ta pile aà d'une récursivisité infinie.
A mon avis c'est parce que tu utilises la post-incrémentation à la place de la pré-incrémentation.
Exemple:
Quand tu fais ça c'est l'équivalent de:
En réalité ici tu as besoin de la pré-incrémentation:
=
Tu vois? Comme tu n'incrémentes pas tes nombres finalement, tu fais un appel récursif infini sur le même i et
la pile d'appels de fonctions finit par saturer.
Et il faudra faire ces pré-incrémentations sur tes 3 return.
A mon avis tu dépasses ta pile aà d'une récursivisité infinie.
A mon avis c'est parce que tu utilises la post-incrémentation à la place de la pré-incrémentation.
Exemple:
return nbrle(mot,lettre1,lettre2,i++,nl1++,nl2);
Quand tu fais ça c'est l'équivalent de:
tmp = nbrle(mot,lettre1,lettre2,i,nl1,nl2); i = i + 1; nl1 = nl1 + 1; return tmp;
En réalité ici tu as besoin de la pré-incrémentation:
return nbrle(mot,lettre1,lettre2,++i,++nl1,nl2);
=
i = i + 1; nl1 = nl1 + 1; return nbrle(mot,lettre1,lettre2,i,nl1,nl2);
Tu vois? Comme tu n'incrémentes pas tes nombres finalement, tu fais un appel récursif infini sur le même i et
la pile d'appels de fonctions finit par saturer.
Et il faudra faire ces pré-incrémentations sur tes 3 return.
rocksider
Messages postés
106
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
16 mars 2012
9
9 janv. 2009 à 15:16
9 janv. 2009 à 15:16
Oui ça a resolu le probleme, merci bcp kilian, j'avais fait la 1er fois pré-incrementation, mais a la fin ché pas pourquoi je l'avait changer ^^