Langage c erreur dans la procedure supprimer
Fermé
nawfal
-
20 mai 2012 à 23:42
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 21 mai 2012 à 06:53
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 21 mai 2012 à 06:53
A voir également:
- Langage c erreur dans la procedure supprimer
- Erreur 0x80070643 - Accueil - Windows
- Comment supprimer une page dans word - Guide
- Supprimer compte instagram - Guide
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Impossible de supprimer un fichier - Guide
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
20 mai 2012 à 23:57
20 mai 2012 à 23:57
Bonjour,
Beh le message est clair.
nbr_employer est un int, tu t'en sers comme pointeur. Ne te trompes-tu pas de variable ?
Beh le message est clair.
nbr_employer est un int, tu t'en sers comme pointeur. Ne te trompes-tu pas de variable ?
nadir abdelilah
Messages postés
2
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
21 mai 2012
21 mai 2012 à 00:51
21 mai 2012 à 00:51
Bonsoir,
free(ajout_employer(t,*nbr_employer)); ça n'a aucun sens ! ! ! ! :O
tu as deja un tableau ou tu stock les employer alors si tu veaux suprimmé tt tu peux tt simplement faire :
free(Tab);
Tab = NULL;
nombre_employé = 0;
voilàà ;) et bn courage .
free(ajout_employer(t,*nbr_employer)); ça n'a aucun sens ! ! ! ! :O
tu as deja un tableau ou tu stock les employer alors si tu veaux suprimmé tt tu peux tt simplement faire :
free(Tab);
Tab = NULL;
nombre_employé = 0;
voilàà ;) et bn courage .
nadir abdelilah
Messages postés
2
Date d'inscription
lundi 21 mai 2012
Statut
Membre
Dernière intervention
21 mai 2012
21 mai 2012 à 00:54
21 mai 2012 à 00:54
de rien . et n'oublie pas NULL en majuscule c obligatoire
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
21 mai 2012 à 06:53
21 mai 2012 à 06:53
Non ce n'est pas obligatoire même si conseillé. De plus il faut pas vider le conteneur brutalement mais tout vider petit à petit (réponse de HooS) sinon il y aura une fuite mémoire.
JooS
Messages postés
2468
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
8 juin 2016
228
21 mai 2012 à 00:59
21 mai 2012 à 00:59
Salut !
Il faut qu'au fur et a mesure que tu parcours ta liste d'employés (Je suppose que c'est une LLC), tu supprime l'employé en cours, jusqu'à que tu atteint la fin de la liste !
Exemple LLC :
Il faut qu'au fur et a mesure que tu parcours ta liste d'employés (Je suppose que c'est une LLC), tu supprime l'employé en cours, jusqu'à que tu atteint la fin de la liste !
Exemple LLC :
parcour = *t; while(parcour != NULL) { //tant qu'on a pas atteint la fin de la liste supp = parcour; free(supp); //on libere le maillon en cours parcour = parcour->suiv; //on avance dans la liste } *t = NULL; //tete de liste vide
Modifié par nawfal le 21/05/2012 à 00:08
et meme si je remplace le pointeur par une adresse ca affiche 2 warnig :/
[Warning] passing arg 2 of 'ajout_employer' makes integer from pointer without a cast
[Warning] passing arg 1 of 'free' makes pointer from integer without a cast
-et la fonction free c'est comme que ca que ca s'ecrit avec la fonction ajout_employer ??? ??
21 mai 2012 à 00:15
En revanche, ce que je peux dire c'est que : free(ajout_employer(t,*nbr_employer));
n'a aucun sens.
Car nbr_employer est de type int et non de type int *. Pour connaître la syntaxe, il faudrait au moins avoir le prototype de la fonction ajout_employer().
Par ailleurs tu fais un free() d'un ajout_employer(). Je ne sais pas ce que renvoie la fonction ajout_employer(), mais faire la désallocation d'une allocation c'est étrange. Est-ce voulu ?