2016-11-06 3 views
0

Ich möchte eine einzelne verkettete Liste mit C erstellen. Warum funktioniert dieses Stück Code nicht? Der Code ist unten angegeben. Ich verwende CodeBlocks zum Ausführen von diesem, das ein Open Source-Compiler ist.Singly Linked List Erstellung in 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

Sie sollten wahrscheinlich den Fehler hinzufügen, den Sie erhalten. "Nicht funktioniert" ist nicht genug für SO. – Nipo

Antwort

0

Wenn Sie ptr=ptr->next; in der Schleife tun, verlieren Sie ptr und zeigen Sie auf Müll, weil next noch nicht initialisiert ist. Also erste Verbindung ptr in die Liste und gehe dann zu next.

Doing, dass ich für Sie als Übung verlassen.