heap corruption detected dans le destructeur de CStringT - C++ - Programmation
Marsh Posté le 01-07-2008 à 11:48:27
Ce ne sont probablement pas les CStringT qui vont corrompre la mémoire. Il doit juste faire un _CrtCheckMemory() dans le destructeur et ta mémoire a du être corrompue un peu avant.
Mets en dans ton code aux endroits critiques, ca devrait t'aider à localiser le problème.
Marsh Posté le 01-07-2008 à 17:21:52
Merci,
Je vais investiguer tout ça
Je vous tiens au courant.
Marsh Posté le 01-07-2008 à 17:34:33
après une série de _CrtCheckMemory(), je m'aperçois que ça se passe pas très bien après : itoa(i,id.GetBuffer(0), 10); ( i est un entier)
Que puis-je faire pour éviter ça?
Marsh Posté le 01-07-2008 à 17:47:05
Pour répondre à Joel, j'avais l'habitude à l'époque d'utiliser les CString et il n'y avait aucun problème d'où mon choix de réitérer l'exploit!!!
Marsh Posté le 01-07-2008 à 17:48:26
ne pas utiliser itoa, passer par des string standard.
Quel est le type de id ? ce buffer que tu reçois, as-tu réellement le droit d'écrire dedans ? est-il alloué ?
Dans tes CStringT, tu devrais probablement avoir une méthode plus propre que ca pour faire les conversions d'entier vers chaine ou de chaine vers entier. Cherche éventuelement de ce côté là.
Marsh Posté le 01-07-2008 à 17:49:07
cyte a écrit : Pour répondre à Joel, j'avais l'habitude à l'époque d'utiliser les CString et il n'y avait aucun problème d'où mon choix de réitérer l'exploit!!! |
Si c'est juste une question d'habitude alors abandonne-les pour quelque chose de standard : la classe string fournie parla STL est très bien
Marsh Posté le 01-07-2008 à 20:08:38
la fonction AppendFormat a l'air de mieux faire les choses....
merci beaucoup pour votre aide précieuse
Marsh Posté le 01-07-2008 à 00:40:00
bonjour à tous,
Dans mon code, j'utilise des CString que j'initialise de la manière suivante : CString str = _T("asasd" );
Lorsque cette variable est utilisée dans une fonction et que je quitte cette fonction, le destructeur ~CStringT() est appelé et produit un "heap corruption detected " !!!!
J'utilise Visual 2008 et...... je ne comprends plus rien!!!!!!!!
Merci d'avance