Эта программа всегда дает мне ошибку сегментации, когда я добавляю последний узел, что может быть возможной причиной. он появляется только при добавлении последнего узла, я прокомментировал строку, в которой я получаю ошибку сегментации. Я новичок в программировании.В чем причина этой ошибки сегментации в этой программе Linked List?
#include<stdio.h>
#include<stdlib.h>
struct node{
int data;
struct node *next;
};
struct node *createNode(int val){
struct node *ret=(struct node *)malloc(sizeof(struct node));
ret->data=val;
ret->next=NULL;
return ret;
}
struct node *addNode(struct node *ll,int val){
//Gives error here for the last node, it creates the node succesfull but this step give segmentation fault
struct node *new_node=createNode(val);
new_node->next=ll;
return new_node;
}
void printList(struct node *ll){
printf("printing list");
struct node *temp=ll;
while(temp->next){
printf("%d ->",temp->data);
temp=temp->next;
}
}
int main(){
struct node *head;
head=addNode(head,3);
head=addNode(head,5);
head=addNode(head,1);
head=addNode(head,9);
printList(head);
}
Вы пытались запустить его через отладчик? Если нет, сделайте это и соблюдайте значение всех переменных в видимости, ищите что-нибудь подозрительное. –
Возможно, вам понравилось читать здесь: http://ericlippert.com/2014/03/05/how-to-debug-small-programs/ – alk
Я ожидал, что код сработает здесь: 'printList() ' – alk