Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1316 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Plantage sur une desallocation d'une structure sous Windows 2003

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Plantage sur une desallocation d'une structure sous Windows 2003

n°1246615
molarisapa
Posté le 16-11-2005 à 11:13:51  profilanswer
 

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 :bounce:  :bounce:

Message cité 1 fois
Message édité par molarisapa le 16-11-2005 à 11:17:22
mood
Publicité
Posté le 16-11-2005 à 11:13:51  profilanswer
 

n°1246697
Emmanuel D​elahaye
C is a sharp tool
Posté le 16-11-2005 à 13:19:20  profilanswer
 

molarisapa a écrit :


J'ai un plantage sur la desallocation d'une structure sous Windows 2003


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;
  }




Est-ce qu'un jour 'lpstr_pat' a été initialisé avec l'adresse d'un bloc alloué libérable par GlobalFreePtr() ?


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1246699
Elmoricq
Modérateur
Posté le 16-11-2005 à 13:20:52  profilanswer
 

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Plantage sur une desallocation d'une structure sous Windows 2003

 

Sujets relatifs
Tableau de structureenvoyer une structure avec une socket udp
Pb de free d'une variable en C sous Windows 2003 TS[VBA-EXCEL 2003] Array exclure 2 onglets
[VBA-EXCEL 2003] Dupliquer une feuille complete [DONE][VS 2003] Comment afficher les erreurs de codage en live (cf Eclipse)
Compilation de routines Fortran pour Unix sous windows[VBA-EXCEL 2003] recuperer le nom de tous les feuilles dans une listbx
[c] recevoir un flux multicast sous WINDOWS (avec visual C++) 
Plus de sujets relatifs à : Plantage sur une desallocation d'une structure sous Windows 2003


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR