Hi,
I have create a simple program for displaying a link list,but it is not working properly.
The code is as follow:
The problem is that in insert(ptr) function it always showing the ptr value 0 i.e NULL which I don't understand since the ptr I have declared as global so it should not be initialized to 0 every time the loop runs.Code:#include<stdio.h> #include<stdlib.h> struct linklist { int data; struct linklist *next; }; struct linklist *ptr; void insert(linklist *ptr) { printf("INSIDE INSERT%u",ptr ); int num; struct linklist *temp = ptr; struct linklist *node = (struct linklist *)malloc(sizeof(struct linklist)); printf("\n Enter the data \n"); scanf("%d",&num); node->data = num; if ( ptr == NULL ) { printf("INSIDE IF%u",ptr ); ptr = node; node->next = NULL; } else { printf("INSIDE ELSE"); while ( temp->next != NULL ) { temp = temp->next; } temp->next = node; node->next = NULL; } } void display(linklist *ptr) { struct linklist *temp = ptr; while ( temp != NULL ) { printf("%d",temp->data ); temp = temp->next; } } int main() { ptr = NULL; int ch; while ( 1 ) { switch ( ch ) { case 1: insert(ptr); break; case 2: display(ptr); break; case 3: exit(0); } printf("\nEnter your choice "); scanf("%d",&ch); } }
Can anybody explain me the behavior and solution to it.
Thanks



LinkBack URL
About LinkBacks


