[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 -
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.
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:
- [C] Listes chaînées + malloc
- Listes déroulantes excel - Guide
- Listes déroulantes en cascade excel - Guide
- Listes courses - Télécharger - Outils professionnels
- Un problème d'initialisation avec malloc en C ✓ - Forum C
- Pourquoi la fonction malloc() ne marche pas ✓ - Forum C
5 réponses
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.
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.
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.
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.
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 ?
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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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é
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é