-
Problème mémoire
Bonjour,
J'ai une fonction récursive qui au bout d'un certain nombre d'appel me lève un stack overflow....
J'ai essayé de modifier ma fonction pour qu'elle ne soit pas récursive, mais ce n'est pas possible.
Que puis-je faire pour résoudre ce problème de stack overflow?
A savoir, que cette fontion récursive ne pose problème que depuis ma migration en VC7.... en VC6, elle ne levait pas d'erreur, et tous les appels marchaient correctement
Merci
-
limiter les variables declarées localement dans la fonction recursive .
voir les deplacer en tant que données locales de la classe si c'est possible.
ou suivant les cas (pour un objet par exemple) allouer la variable par un new.
:D
-
J'ai bien fait attention à tout ça...
Ce que je comprends pas surtout c'est pourquoi en VC6, ça marchait et plus en VC7 ???
-
faut pas oublier qu'il y eu des changements interne quand même :
du syle la classe CString qui utilise les STL par exemple ..
peut etre qu'avant ça passait juste.
dans ce cas augmente la valeur de la pile ....
:D
-
Comment je fais pour augmenter la valeur de la pile ?
-
re,
http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/vccore/html/_core_.2f.stack_linker.asp
:D
-
J'ai bien essayé, ça change rien... à moins que je me plante dans la saisie de la taille de la pile....
-
-
J'avais mis 2Mo (2097152) mais ça suffisait pas encore....
J'ai augmenté encore, cette fois ça marche !!!
Merci beaucoup.