Je rencontre depuis un petit moment un problème qui a la dent dure.
Je programme sous Visual C++ 6, sous win XP.
Il s'agit de problèmes d'allocation mémoire.
Plus précisément, j'ai dans mon programme un classe X qui contient des membres étant aussi des classes un peu compliquées, et ayant une méthode d'initialisation elle aussi assez compliquée, elle ouvre plusieurs fichiers extrernes pour les lire et remplir des structures...
Depuis que j'essaie d'appeller cette méthode d'initialisation depuis une classe X allouée (pour l'allouer j'ai essayé malloc, new et même <vector> de la STL car le but est d'avoir plusieurs classes X), dans la méthode d'initialisation il y a toujours un moment ou une allocation mémoie plante (cela peut être soit sur un realloc, soit sur un push_back d'un <vector>. En général j'ai droit a une "Debug assertion", CtrlsValidHeapPointer(pUserData) ...
Quand j'appelle la méthode d'initialisation sur une instance locale de X (prise sur la pile), cela marche ! même avec tout un tableau de X !!
Peut il s'agir d'un problème concernant la taille du Heap ?? Je n'y connait pas grand chose.
Mon programme consomme pas mal de mémoire, de l'ordre de 20 Mo mais le problème semble insensible à la quantité de RAM déja allouée pour ce problème... Donc j'imagine qu'il s'agit plutôt d'un problème de Heap.
Merci pour toute aide