Précédent   Forum du club des développeurs et IT Pro > C et C++ > C > Débuter
Débuter Forum d'entraide pour débuter en langage C. Avant de poster -> FAQ C
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/02/2013, 17h32   #1
m.badji
 
Homme mamadou badji
Informatique
Inscription : février 2013
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme mamadou badji
Localisation : Sénégal

Informations professionnelles :
Activité : Informatique
Secteur : Enseignement

Informations forums :
Inscription : février 2013
Messages : 2
Points : -1
Points : -1
Par défaut Utilisation des fonctions malloc() et free()

bonjour
je voudrais savoir comment utiliser ses fonction malloc et free par exemple dans une fonction de lecture merci d'avantage.
m.badji est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2013, 17h42   #2
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 095
Points : 11 095
Regarde ici :

http://man.developpez.com/
http://man.developpez.com/man3/malloc.3.php
http://man.developpez.com/man3/free.3.php
Obsidian est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2013, 17h44   #3
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 384
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 384
Points : 32 024
Points : 32 024
Envoyer un message via MSN à Médinoc
Ça dépend dans quelles circonstances.
  • Si c'est pour lire un fichier, ou des données sur l'entrée, et qu'on précise en premier le nombre de données qu'on va saisir, on peut utiliser malloc() pour allouer un tableau de cette taille et le remplir au fur et à mesure qu'on lit.
  • Si c'est pour lire des données sur l'entrée standard sans que leur nombre soit entré en premier, il y a deux solutions: Le tableau agrandit périodiquement avec realloc() ou la liste chaînée (qu'on peut ensuite recopier dans un tableau).
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2013, 13h04   #4
Ngork
Membre chevronné
 
Homme
Auditeur informatique
Inscription : avril 2009
Messages : 118
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Auditeur informatique
Secteur : Finance

Informations forums :
Inscription : avril 2009
Messages : 118
Points : 650
Points : 650
Réservation de mémoire avant le début de la lecture selon n le nombre d'octets à lire, puis boucle de lecture si la mémoire a bien été réservée, puis libération de la mémoire lorsqu'elle n'est plus utile :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
/* réservation d'une quantité de mémoire suffisante */
char *tampon = malloc(n);
 
/* si la mémoire a bien été réservée alors on lit */
if (tampon != NULL)
  {
    /* boucle de lecture */
 
    /* utilisation des données lues et stockées en mémoire */
 
    /* libération de la mémoire */
    free(tampon);
  }
__________________
<< Il n'est pas dans Ses intentions de tout faire, ni donc de nous dépouiller de notre libre-arbitre et de cette poignée de gloire qui nous appartient. >> (Le Prince, Nicolas Machiavel)
Ngork est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h55.


 
 
 
 
Partenaires

Hébergement Web