begin process at 2012 05 29 23:29:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

Liberation de memoire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Liberation de memoire

samedi 4 juin 2005 à 05:01:31 | Liberation de memoire

gwenChina

Bonjour a tous,

Je viens de debuter mon stage, je suis donc nouveau dans ce forum.

En fait j'ai un probleme de liberation de memoire. J'alloue un pointeur avec malloc() mais losrque je fais mon free(), le compilateur me jette!!
Je me demandais si il y a vait des regles strictes a respecter pour la liberation de la memoire que je n'ai pas saisies.

En fait j'alloue la memoire qu'il faut, ensuite je place un pointeur (pointeur global au fichier C) qui va etre ensuite rempli par la fonction (readInHeader). Ensuite je compare tout ca avec un string mais lors de la desallocation, ca plante!!

Voici donc mon code:
static unsigned char CheckFileInformation()
{
      
       char aDicomPrefix[] = "DICM";
       unsigned char* pcAllocationPointer;
      
       // The file preamble is 128 bytes long
       if ((SeekTheHeader(128,FROM_START)) == FAIL)
          return FAIL;
       // The prefix, situated just after the file preamble is read
       // Memory allocation for the given length of bytes
       if ((pcAllocationPointer = (unsigned char*)calloc(4,sizeof(unsigned char))) == NULL)
       {
          // Cannot allocate the memory
       gtErrorCode = ERROR_ALLOCATE_MEMORY;
          free(pcAllocationPointer);
          return FAIL;
       }
       // The pointer that will contain the reading  value   points in the
       // memory allocation
       pcReadingValues = pcAllocationPointer;
       // Read in the header and fill the pcReadingValue pointer
       if (ReadInHeader(4) == FAIL)
          return FAIL;
       // Adding of the null character for the string comparison
       pcReadingValues[4] = 0;
       if ((strcmp(pcReadingValues,aDicomPrefix)) != 0)
       {
          gtErrorCode = ERROR_PREFIX;
          return FAIL;
       }
       free(pcAllocationPointer);// Ne veut pas desallouer le pointeur!!!
       return SUCCESS;
}      


Merci d'avance

GwenChina
samedi 4 juin 2005 à 10:17:31 | Re : Liberation de memoire

BruNews

Administrateur CodeS-SourceS
dans ton 1er if(pcAllocationPointer == NULL) tu mets un free(pcAllocationPointer); ben non !!!

pcReadingValues[4] = 0; NON, tu as demandé 4 octets, tu ne peux pas écrire sur le 5eme.
etc... faut de la cohérence stp.

ciao...
BruNews, MVP VC++
mercredi 8 juin 2005 à 06:11:23 | Re : Liberation de memoire

gwenChina

Merci pour cette remarque,
Je debute en C, et je devrais mettre plus de structure a mon code, et surtout de la rigueur.

GwenChina





Cette discussion est classée dans : return, char, memoire, fail, pcallocationpointer


Répondre à ce message

Sujets en rapport avec ce message

liberation de memoire [ par bobaben ] bonjour, je suis debutant en c++. j'ai un petit souci de liberation de memoire. je voudrai savoir comment peut-on desallouer "new" qui est dans une Recherche de caracteres dans une chaine de caracteres [ par rere62960 ] Bonjour, Je veux écrire une fonction qui retourne un pointeur sur la 1ere occurrence du caractère recherché. (NULL si non trouvé) J'ai écris ceci : conversion c++ vers c# [ par survcopt ] Bonjour,Je cherche à convertir le code d'une dll dont j'ai le source qui est écrit en c++ vers une version en c# car je maîtrise mieux ce langage.Je c C++?/ Problème pour recevoir des octets dans un tableau [ par LiaGalanodel ] Bonjour a tous. Je suis une grande débutante en c++ et je me heurte a un problème. Voila, je dois faire un programme de socket. J'utilise pour cela cryptage de cesar sur c++ [ par juniordiaw ] bjr a tous g un problemea vec mon code o faite lorske g rentre un letre il me la crypte mai sil sagi dun mo ou dune phrase il ne crypte ke la premiere Chaine de Char et Memoire ! [ par Soft ] Bonjour,Qq1 connait il un moyen pour charger le contenu d'un fichier (pouvant atteindre plusieurs dizaines de MO) dans un char *buffer;Car meme avec u Questions sur les fonctions ! (suis un debutant) [ par sebclick ] slt tlmje programme en c++ depuis qlql semaines... et la je viens de decouvrir ce site... ça tombe bien j'ai un petit pb.Lorsque l'on créer une foncti Pointer directement vers la memoire video (probleme de cast) [ par Darkneon ] Salut, J'essais de declarer mon pointeur vers la memoire video comme suitchar *screen = (char *)0xA0000000L;mais ca me donne le message d'erreur suiv Petite question ayant attrait à la gestion de fichier. [ par meteore ] Voila je suis en train de faire un petit logiciel pour le classement de mes cds.J'ai donc créer une fonction permettant d'ajouter un cd dans une boite Pointeur et liberation de memoire [ par Darkneon ] Salut, J'avais un probleme apres que je liberais de la memoire allouer a un pointeur, le message "Null pointer assignment" m'apparaisait toujours. Le


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales