begin process at 2012 05 30 11:37:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

stack overflow !!!!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

stack overflow !!!!

vendredi 23 février 2007 à 17:58:36 | stack overflow !!!!

azamharir

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?
merci et @++ 
vendredi 23 février 2007 à 18:21:35 | Re : stack overflow !!!!

BruNews

Administrateur CodeS-SourceS
Si tu as plusieurs params à ta fonction, tu fais une struct et tu en passes l'adresse, ainsi que 4 octets par tour sur la pile (enfin presque...).

La seule vraie solution restera malgré tout de virer la récursivité, c'est une nuisance pour les perfs et pour la pile.

ciao...
BruNews, MVP VC++
vendredi 23 février 2007 à 18:36:11 | Re : stack overflow !!!!

azamharir

salut
BruNews  pour les parametres c juste 1:     bool arbre::profondeur(noeud*)
pour les 4 octets, on fais comment?
merci et @++

 
vendredi 23 février 2007 à 18:39:34 | Re : stack overflow !!!!

BruNews

Administrateur CodeS-SourceS
Chaque param sur system 32 bits est de 4 octets, rien à faire de spécial.
Mais comme EIP est empilé en 1er, ça t'en fait 8.

ciao...
BruNews, MVP VC++
vendredi 23 février 2007 à 18:53:14 | Re : stack overflow !!!!

azamharir

salut
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 @++
samedi 24 février 2007 à 01:08:54 | Re : stack overflow !!!!

yann_lo_san

Réponse acceptée !

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/

samedi 24 février 2007 à 13:10:50 | Re : stack overflow !!!!

azamharir

salut
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.


Cette discussion est classée dans : recherche, utilise, stack, overflow, profondeur


Répondre à ce message

Sujets en rapport avec ce message

Stack overflow [ par Vaughn018 ] Bonjour,Mon programme provoque une exception stack overflow, et je ne vois vraiment pas comment réduire l'importance des objets utilisés. J'ai pu isol recherche aide pour C++ [ par wecket2000 ] Salut,je suis en train d apprendre à programmer en C++ orienté Objet, j utilise visual C++, je ne sais pas si c est dû au logiciel ou pasmais je n arr erreur de stack overflow à cause de tableaux trop volumineux [ par nicolas_vergnes ] SalutJe fais de la décomposition en ondelettes sur des images 320x320. Je dois donc bosser avec des tab de dim [320][320][5]. En les déclarant en stat Problème de stack overflow avec classe [ par gosu14 ] Bonjour,Je suis un petit nouveau et j'ai déja un problème en cpp ;) ! Je suis à la recherche d'une bonne âme pour m'aider !voici mon pb :J'ai deux cla verifier un overflow [ par balek84 ] Bonjour, Je suis actuellement en train de développer une application qui utilise drivers d'une carte réseau (librairie C). Lorsque mon compteur 16bit stack overflow [ par ssana83 ] Bonjour, j'ai réalisé un programme de création d'un arbre donc j'ai utilisé une fonction récursive. J'ai essayé le programme ça marche sauf avec certa Insertion image dans bdd postgresql en C [ par ar1du62 ] Bonjour, Voila le soucis: j'utilise une base de données sous postgreSQL, dans un programme en C, je dois insérer une image dans un champs bytea; j'ai Récupération de la Profondeur des Objets OpenGL [ par shorzy ] Salut J'ai un Probleme sur les Selections-Picking. J'ai une Face (Rectangle) dessiner à une Profondeur de -5 (par Ex.) Comment savoir quand je pose m recherche dans un fichier [ par langagec08 ] bonjour, est ce ke kelk 1 pourrait me dire comment puis chercher un mot dans un fichier et faire une modification en langage c. mercii d'avance. a la recherche d'un code C qui permet de connecter une carte a base de fpga a un pc par un port pci [ par sahbimarrakchi ] salut tout le monde travaille sur la recherche d'un code C qui permet de connecter une carte a base de fpga a un pc par un port pci donc le code C do


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,903 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales