khabdou
Messages postés12Date d'inscriptionvendredi 31 août 2007StatutMembreDernière intervention 4 mai 2008
-
3 mai 2008 à 00:23
khabdou
Messages postés12Date d'inscriptionvendredi 31 août 2007StatutMembreDernière intervention 4 mai 2008
-
4 mai 2008 à 23:33
Salut,
j'ai un problem au cours de l'execution du code développer avec VS2005(enoncé aprés) il se lance une exception de type "System.StackOverflowException" SVP est ce qu'il y a quelqu'un peut m'aider pour résoudre se probléme et comment le résoudre?
Merci d'avance............
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 200813 3 mai 2008 à 01:21
Je n'ai pas regardé ton code en détail, mais a chaque appel de ta fonction, tu sembles rapeller recursivement cette même fonction 4 fois de suite... autrement dit, si tu fais cela a chaque fois, le nombre d'appel récursif explose littéralement... Es tu sur que c'est la bonne solution ? Es tu sur aussi que tu "sorts" de ta récursivité de temps en temps ?
<hr size="2" width="100%" />
Working as designed
www.nikoui.fr
khabdou
Messages postés12Date d'inscriptionvendredi 31 août 2007StatutMembreDernière intervention 4 mai 2008 3 mai 2008 à 02:11
salut,
oui je suis sur qu'elle sort de lla récursivité,
ce code (baguette) c'est presque un code d'une baguette magique de PaintDotNet oubien Photoshop.
Nikoui
Messages postés794Date d'inscriptionvendredi 24 septembre 2004StatutMembreDernière intervention19 août 200813 3 mai 2008 à 10:42
C'est surement le "presque" qui pose problème alors... De ce que je comprend, a chaque appel, tu va re-rentrer 4 fois dans ta méthode (ce qui veut donc dire, que tu va donc rappeler 16 fois la méthode, puis 64 fois, 256 fois, etc). Et tu passes à chaque fois un certain nombre de paramètres donc ca ne m'étonnes pas que la pile mémoire explose : Y'a une différence entre faire une boucle de 256 itérations et faire une récursivité sur 256 niveaux : à chaque appel récursif tu va sauvegarder le contexte courant, les paramètres, l'adresse de retour... Et tout ça pour traiter uniquement les 256 pixels autour de ton point initial, autrement dit un carré de 16*16 pixel -> je te laisse imaginer ce que ça donne sur une portion d'image a peine plus grande.
Je persiste donc à dire que ce n'est pas la bonne solution dans ton cas... Soit modifie ta fonction pour qu'elle ne prenne plus de paramètres, ça sera toujours ça de gagner sur la pile mémoire et ça passera peut être mieu, soit ne fait pas de la récursivité mais de simples boucles while...
<hr size="2" width="100%" />
Working as designed
www.nikoui.fr
khabdou
Messages postés12Date d'inscriptionvendredi 31 août 2007StatutMembreDernière intervention 4 mai 2008 4 mai 2008 à 23:33
Merci,mais j'ai pas trouvé l'idée comment remplacer la fct récursive par une boucle while.
Si tu as une idée,svp aidez moi pr résoudre se problém.
Merci d'avance.........