Need help

nonocpp Messages postés 18 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 17 mai 2006 - 19 oct. 2005 à 14:52
nonocpp Messages postés 18 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 17 mai 2006 - 20 oct. 2005 à 10:16
HEAP[UDPServer.exe]: Heap block at 00357A80 modified at 00357A70 past requested size of ffffffe8
HEAP[UDPServer.exe]: Invalid Address specified to RtlValidateHeap( 00350000, 00357A88 )

voila ce que m envoie comme erreur mon programme...
il n y a pas d erreur à la compil mais au debug, il apparait le message ci dessus.

une idée?

merci

nono

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
19 oct. 2005 à 15:14
Un écrasement mémoire : tu écrit à une addresse non valide et tu corromps le tas (heap).

Petite explication :
Quand tu alloue de la mémoire, une zone supplémentaire est allouée pour y mettre des infos supplémentaires (dont la taille).
Si dans ton programme tu écris n'importe où (genre dans la case 65 d'un tableau de 64) tu risque d'écraser les infos suppméméntaires allouées et du coup le gestionnaire de mémoire C détecte un problème et de le dis.

Une autre explication est la libération d'un pointeur non valide (et donc n'ayant pas les infos supplémentaires).

Résolution :
- vérifier les allocations/libération de mémoire
- vérifier les indices des tableaux.

Ce genre de bug est parfois dur à résoudre car l'écrasement mémoire peut produire un effet à long terme. C'est seulement quand ta va lire à l'addresse mémoire corrompue que tu te rend compte du problème. ce qui peut arriver immédiatement, longtemps après voire jamais...
0
nonocpp Messages postés 18 Date d'inscription jeudi 11 août 2005 Statut Membre Dernière intervention 17 mai 2006
20 oct. 2005 à 10:16
ok merci
0
Rejoignez-nous