J'ai écrit une fonction pour ajouter des nœuds créés dynamiquement à la fin d'une liste chaînée, en utilisant malloc.Et puis sur la dernière ligne de fonction, j'ai essayé de libérer l'espace mémoire pour la température du pointeur.en utilisant la fonction free() dans C
addnodelast(int data){
struct node* temp =(struct node*)malloc(sizeof(struct node));
temp->data=data;
temp->link=NULL;
struct node*p=head;
while(p->link!=NULL)
{
p=p->link;
}
p->link=temp;
free(temp);
}
Mais sur l'exécution, je ne suis pas en mesure d'imprimer la liste car il est infiniment values.But aléatoire d'impression quand je supprimer/commenter la dernière sans ligne (température), cela fonctionne tout va bien .
Je ne vois aucune impression dans ce code. De plus, je ne vois rien de significatif ici. –
C'est une erreur logique de libérer le nœud ajouté. – jxh
Vous appelez 'free()' prématurément. –