Plantage sur une desallocation d'une structure sous Windows 2003 - C - Programmation
Marsh Posté le 16-11-2005 à 13:19:20
molarisapa a écrit :
|
Est-ce qu'un jour 'lpstr_pat' a été initialisé avec l'adresse d'un bloc alloué libérable par GlobalFreePtr() ?
Marsh Posté le 16-11-2005 à 13:20:52
Post en doublon :
http://forum.hardware.fr/hardwaref [...] 0133-1.htm
Marsh Posté le 16-11-2005 à 11:13:51
Bonjour,
J'ai un plantage sur la desallocation d'une structure sous Windows 2003
J'ai une structure patient de ce type:
struct st_patient {
char NOIP[11] ; /* 'NIP du patient'; */
char NMMAL[21] ; /* 'Nom du malade'; */
char NMPMAL[16] ; /* 'Prenom du malade'; */
char NMPATR[21] ; /* 'Nom patronymique '; */
char CDSEXM[2] ; /* 'Sexe du malade (F, M, I)'; */
char DANAIS[11] ; /* 'Date de naissance'; */
char CDDNIN[2] ; /* 'Validite date de naissance ('I', 'O'); */
};
#define LPSTR_PATIENT struct st_patient FAR *
et dans mon main j'ai ca:
LPSTR_PATIENT lpstr_pat=NULL;
.... traitement/remplissage de la structure patient ...
et en fin de main j'ai ca:
if (lpstr_pat){
GlobalFreePtr(lpstr_pat);
lpstr_pat = NULL;
}
J'ai un plantage sur le GlobalFreePtr. Parfois ca plante, parfois ca marche. Pourtant quand je regarde en debug, chaque menbres de la structes est correctement affecté, et aucun d'eux n'a été désaloué ou quoi que ce soit.
Existe t'il une autre fonction que GlobalFreePtr? Faut t'il parcourir tout les element de ma structures pour les desalouer un par un? si oui, comme fait ton pour connaitre le nombre d'element de la structure? Faut-il déclarer un menbre "count" dans la structure, ou existe t'il une fonction count ou autre?
merci pour votre aide
Message édité par molarisapa le 16-11-2005 à 11:17:22