要檢查示例列表imlpementation我嘗試了下面的代碼。但是每當我試圖顯示結果時,它都會進入一個循環。我無法找到哪裏出錯。爲什麼我無法顯示正確的列表值?
#include<stdio.h>
#include<stdlib.h>
typedef struct linkedlist
{
int data;
struct linkedlist *next;
}node;
int main()
{
int ch,num;
node *head=NULL;
head=(node *)malloc(sizeof(node));
node *new=NULL;
new=(node *)malloc(sizeof(node));
node *temp=NULL;
temp=(node *)malloc(sizeof(node));
printf("\n1.Insert to list");
printf("\n3.Display the list");
printf("\n Enter Choice->");
scanf("%d",&ch);
switch(ch)
{
case 1:printf("\n Enter data->");
scanf("%d",&num);
new->data=num;
new->next=NULL;
head->next=new;
break;
case 3: temp=head;
while(temp!=NULL)
{
printf("\n %d",temp->data);
temp=temp->next;
}
break;
default:printf("Wrong Choice");
break;
}
return 0;
}
但每次用戶按1,我猜測新的「新」節點被創建並鏈接。如果它沒有發生,因爲我在想如何在每次用戶按下1時創建新節點? – Mistu4u
實際上創建新節點的代碼是'malloc(sizeof(node))'調用。 –