cs_azamharir
Messages postés55Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention 1 novembre 2008
-
23 févr. 2007 à 17:58
cs_azamharir
Messages postés55Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention 1 novembre 2008
-
24 févr. 2007 à 13:10
salut, je fais un jeux de taquin en C++ avec visual studio 6.0.
j'utilise la recherche en profondeur, Hill climging et A* chaque et un programme à part.
pour la recherche en profondeur j'ai eu l'erreur stack overflow.
j'utilise un arbre comme structure et à l'aide d'une fct récursive je
construit cet arbre et cherche la solution en meme temps, mais apres
10333 appel recursif, le programme s'arrete.
en debuggant j'ai trouvé que l'erreur est stack overflow.
question : peut on augmenter cette pile? si vous avez des idées pour
résoudre mon probleme sans changer la fct recursive par une autre
itérative, svp partagez les avec moi?
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201625 24 févr. 2007 à 01:08
Salut,
je crois que VC6 alloue 1MO par défaut pour la pile, on peut toujours l'augmenter avec l'option :
/STACK:reserve[,commit]
de l'éditeur de lien. Exemple :
/STACK:1048576,4096
ou option
Propriétés projet/linker/systeme/taille de réserve de pile/
cs_azamharir
Messages postés55Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention 1 novembre 2008 23 févr. 2007 à 18:36
salut
[auteurdetail.aspx?ID=39449 BruNews] pour les parametres c juste 1: bool arbre::profondeur(noeud*)
pour les 4 octets, on fais comment?
merci et @++
cs_azamharir
Messages postés55Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention 1 novembre 2008 23 févr. 2007 à 18:53
salut
[auteurdetail.aspx?ID=39449 BruNews] donc comme t'as dit la seule solution est d'enlever la recursivité.
mais une fct iterative pour un arbre!!!
merci bien pour la rapidité de la reponse. je vais essayer de combiner les 2.
merci et @++
cs_azamharir
Messages postés55Date d'inscriptionjeudi 18 janvier 2007StatutMembreDernière intervention 1 novembre 2008 24 févr. 2007 à 13:10
salut
[auteurdetail.aspx?ID=195004 yann_lo_san], ta reponse prouve qu'avant de poser une question sur ce site, il faut voir la MSDN avant.
j'accepte ta reponse. mais 39375 appels recursifs pour un exemple sans la recursivité pour afficher le chemin de la solution c trop. La solution idéale c de convertir en iteratif.