[C++] Debug assertion failure

Debug assertion failure [C++] - Programmation

Marsh Posté le 14-01-2002 à 04:32:48    

Slt
 
Aie aie aie...
Je viens de finir de debuger le prg et il ne me reste plus qu'un prb à la femerture du prg...J'ai donc une assertion failure qui me tombe dans les mains à la fin du prg.
 
Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
 
Pour être plus précis, cela arrive juste à la fin du déconstructeur d'un objet. Le problème c'est que ca arrive une fois sur 10 et j'arrive pas à localiser le prb. Apparement c'est un prb d'allocation de mémoire (scalar deleting destructor).
 
C'est pas la première fois que je tombe sur ce prb très précis. Mais la dernier fois le prb avait disparu en déplacant un peu le code...
 
Comprends vraiment pas...quelqu'un connait? :(


---------------
Si t'es pas net, reste a la buvette
Reply

Marsh Posté le 14-01-2002 à 04:32:48   

Reply

Marsh Posté le 14-01-2002 à 09:19:10    

en degub, y a souvent des erreurs à la destruction d'objets quand tu libères mal la mémoire. style, si tu libères pas tous l'espace mémoire que t'as alloué. vérifies si tu détruit bien correctement tous les objets que tu crés.

Reply

Marsh Posté le 14-01-2002 à 14:21:35    

Oui oui je les détruit tous :)
 
En général je fais bien gaffe à ca...:) Non non la débug assertion failure dont on parle est apparement assez connu. C'est que j'ai trop joué avec la mémoire quelque part en deletant des objets qui ne m'appartenaient pas...Le prb c'est de trouver où dans un gros prg !!! :(
 
Et effectivement, je viens de trouver :D Dans certains cas, j'écris en dehors du tableau (aie aie aie!! :) ) Je dois deleter quelque chose qui ne m'appartient pas :)
 
Merci merci :)


---------------
Si t'es pas net, reste a la buvette
Reply

Marsh Posté le 14-01-2002 à 14:47:51    

l'assertion vient du fait, qu'en debug, visual alloue un peu de memoire avant et apres, et une fois que tu clean, il verifie que le contenu de la mémoire alloué en plus n'a pas été altéré
 
Si oui, il te fais une assertion . donc bon, fais bien gaffe a pas ecrire la ou il fo pas :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed