[C] Listes chaînées + malloc

oliver91 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   -  
ekra Messages postés 1870 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir,

J'aimerai comprendre l'interet, l'utilité des "malloc" lors des listes chaînées ...

Puis si quelqu'un se sent d'attaque pour m'expliquer clairement le fonctionnement des malloc los des listes chaînées ...

Concernant les algos d'insersion, suppression ... je vais essayer à partir de ce que vous allez me dire de me débrouiller ...

En vous remerciant d'avance,
Bonne soirée,


Olivier.
A voir également:

5 réponses

ekra Messages postés 1870 Date d'inscription   Statut Membre Dernière intervention   342
 
Bonjour,

On utilise malloc pour une allocation dynamique (après compilation). Concrètement c'est quand tu veux reserver de l'espace mémoire, mais que tu ne sais pas combien à l'étape de la compilation.
Exemple :
variable a : est demandé à l'utilisateur pour savoir combien d'espace il veut réserver
Si tu fait :
int espace[a]; /* Interdit, a doit être une constante non modifiable après la compilation */
--------
int *espace;
espace = (int*)malloc(sizeof(int)*a); /* Ok : la mémoire est allouée en RAM */
/* Traitement */
free(espace); /* Ne pas oublier de libérer la mémoire */

Dans le cas de liste chainée, tu ne sais pas à l'avance combien tu dois en réserver. Ce nombre varie selon les exécutions.
2
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
Bonne explication là: cliste
1
oliver91 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   3
 
Mais alors comment faire si j'ai une liste chaînée de nom de fichiers (dont je ne sais pas combien j'en ai ...) ??

De plus, l'utilisateur doit pouvoir supprimer (n'importe lequel des noms de fichier) ou rajouter (à la fin) ...
... comment faire pour cela ?


Merci d'avance de votre aide.


Olive.
0
oliver91 Messages postés 51 Date d'inscription   Statut Membre Dernière intervention   3
 
Désolé mais je n'ai pas trouvé que ce tuto reponde vraiment bien à ma demande ...

En tout cas, les noms de fichiers sont à resaissir à chaque lancement du prog ... n'ai t il pas possible de les garder en mémoire ?
0
ekra Messages postés 1870 Date d'inscription   Statut Membre Dernière intervention   342
 
Pour cela il faut écrire dans un fichier. C'est la seule méthode de stockage lorsqu'on arrête l'execution d'un programme.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
reddevil Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   5
 
malloc sert à allouer de l'espace memoire car en ce qui concerne les listes chainés celles ci sont des noeuds alloués dynamiquent dans la memoire qui facilitent la recherche mieux que les tableaux
en plus leur avantages c kil sont pa gourmands rn memoire juste aprés l'utilisation en utilise un simple free pour liberer l'espace occupé
-1