C中的单链表创建

时间:2016-11-06 12:40:23

标签: c

我想用C创建一个单独的链表。为什么这段代码不起作用?代码如下。我正在使用CodeBlocks来运行这是一个开源编译器。

#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();

}

1 个答案:

答案 0 :(得分:0)

当你在循环中执行ptr=ptr->next;时,你会松开ptr,然后指向垃圾,因为next尚未初始化。因此,首先将ptr链接到列表中,然后转到next

这样做我作为练习离开你。