begin process at 2010 02 10 12:17:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

mémoire en trop


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

mémoire en trop

vendredi 17 février 2006 à 20:10:48 | mémoire en trop

deck_bsd

Membre Club
Bonjour,

Voici une procédure charger de remplir un liste chainée en lisant les donnée d'un fichier binaire :

void LectureDuFichier(){
    FILE *fichier_in;

    printf("\nLECTURE");
    ptStart=(element*)malloc(sizeof(element));
    ptCur=ptStart;

    fichier_in=fopen("stock.gst",0_READ); // "rb" .
    while(fread(ptCur,sizeof(element),1,fichier_in)!=0){
        if(feof(fichier_in)==0){
            ptCur->ptSuivant=(element*)malloc(sizeof(element));
            ptCur=ptCur->ptSuivant;
        }
    }
    fclose(fichier_in);
    ptEnd=ptCur;
    ptEnd->ptSuivant=NULL;

}

En fait cette procédure fonctionne bien, je dirait même trop bien car elle alloue de la mémoire 1 fois en trop :s . Pourtant j'alloue de la mémoire supplémentaire tantque l'on est pas arrivé à la fin du fichier :/ . Cela ne devrait pas allouer de la mémoire en trop.

Quelqu'un peut t-il m'aider svp?

Merci d'avance.

vendredi 17 février 2006 à 21:10:23 | Re : mémoire en trop

darkpoulpo

element *ptStart,*ptEnd;

void LectureDuFichier(){
    FILE *fichier_in;
    element tmp;
    printf("\nLECTURE");
    ptStart=NULL;

    element **ptCur = &ptStart;
   
    fichier_in=fopen("stock.gst",0_READ); // "rb" .
    fread(&tmp,sizeof(element),1,fichier_in);
    while(!feof(fichier_in)) {
         *ptCur =(element*)malloc(sizeof(element));
         memcpy(*ptCur,&tmp,sizeof(element)); //car si fichier vide ca t'evite d'allouer
         fread(&tmp,sizeof(element),1,fichier_in);
         ptEnd = *ptCur;
         ptCur=&(*ptCur)->ptSuivant;
         *ptCur = NULL;
    }
    fclose(fichier_in);
}

vendredi 17 février 2006 à 21:12:37 | Re : mémoire en trop

darkpoulpo

rajouter ptEnd = NULL; à la suite de ptStart = NULL;


Cette discussion est classée dans : fichier, mémoire, in, trop, ptcur


Répondre à ce message

Sujets en rapport avec ce message

Segmenter un fichier en mémoire C (seulement) [ par golum ] Voila pour ouvrir a partir de mon prog c un fichier de 20 Mo je met 1min et j'aimerais a tout pris diminuer ce temps.Est-il possible de segmenter le f PB ifstream [ par ifren ] j'ai un petit problemle voilaifstream in("fichier.txt");char v_word[256];in >> v_word >> v_word >> v_word;//je reccupere le v_word; et puis j'ai envi gestion de fichier en C++ [ par croftlou ] Bonjour je suis debutant en C++, je desire faire un petit projet en C+++, pour gere des des fichiers en lecture et en ecriture.Pour cela ej voudrai cr comment lire ou écrire à un fichier dans la mémoire ? [ par ilimo ] bonjour,je sais ouvrir un fichier dans la mémoire..mais comment le lire à partir de cette même mémoire ?merci pour votre aide ...-------------j'utilis problème de mémoire [ par ptitchep ] BonjourJe développe un jeux en c++ assembleur 16 bit avec borland c++ 4.5. J'aurais besoin d'une bonne quantité de mémoire (environ 1Mo) pour stocker charger bitmap depuis mémoire ?? [ par cybermax62 ] je voudrais charger un bitmpa depuis une fichier.Je m'explique :je veux me faire un fichier du type *.pak pour stocker mes données (des images). Donc Allocation mémoire [ par thedestiny ] Voila je présente mon projet brievement :C'est un programme qui est censé ouvrir un fichier d'une taille assez conséquente ( 20 mo environ )Plusieurs allouer de la mémoire pile. [ par deck_bsd ] Bonjour, Voila j'ai un problème , j'ai fait une partie de programme qui est chargé d'allouer juste assez de mémoire a un pointeur  de type char pou Buffer trop petit ????????? [ par Grand_steak ] Bonjour.Je réalise actuellement un programme permettant de traiter un fichier texte. Ce fichier texte est composé de caractères ASCII représentant des Gros fichier mémoire (block par block) [ par jockos ] Bonjour,Je développe un logiciel de cryptage.Mon logiciel doit pouvoir crypter de très gros fichier (plusieurs centaines de Mo).Je monte le fichier en


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,811 sec (3)

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