2016-11-06 74 views
0

我想用C創建一個單鏈表。爲什麼這段代碼不工作?代碼如下。我正在使用CodeBlocks來運行這是一個開源編譯器。C中的單鏈表創建

#include<stdio.h> 
#include<malloc.h> 

struct node 
{ 
    int info; 
    struct node *next; 
}*first=NULL; 

void create() 
{ 
    struct node *ptr; 
    int i,n; 
    printf("Enter the number of nodes"); 
    scanf("%d", &n); 
    for(i=0;i<n;i++) 
    { 
    ptr=(struct node *)malloc(sizeof(struct node)); 
    printf("Enter the data."); 
    scanf("%d",&ptr->info); 
    ptr=ptr->next; 
    if(first==NULL) 
    {first=ptr;} 
    } 
    ptr->next=NULL; 
} 
void main() 
{ 
    create(); 

} 
+0

你應該添加你得到的錯誤。 「不工作」對於SO來說還不夠。 – Nipo

回答

0

當你在做循環ptr=ptr->next;,你鬆ptr,然後你點垃圾,因爲next尚未初始化。所以首先將ptr鏈接到列表中,然後轉到next

這樣做,我作爲excercise爲你離開。