数据结构中的链接列表

时间:2015-08-12 14:40:17

标签: c linked-list

假设temp是指向结构node的指针。 temp->nextNULL。那么temp->next->next的价值是什么?

简而言之NULL->next的价值是多少?它是编译器依赖的,因为我在ubuntu和代码块(windows)中看到了不同的结果?

下面的程序输出是什么?

 struct node
 {
  int data;
   struct node *next;
 };

 main()
 {
   struct node *temp,*p;
   int c=0;
   temp=(struct node *)malloc(sizeof(struct node));
   temp->data=50;
   temp->next=NULL;
   p=temp;
   if(p->next->next==NULL)//will it enter the if loop?
      c++;
   printf("%d",c);
  }

2 个答案:

答案 0 :(得分:1)

如果temp->next为NULL,则取消引用它以获取temp->next->nextundefined behavior。可能发生崩溃,但其他事情可能会发生。原则上,任何都可能发生。

不要取消引用空指针。

答案 1 :(得分:1)

NULL-> next必须给你一个段错误。

您可能希望拥有以下内容:

if(p->next != NULL && p->next->next==NULL)

if(p->next == NULL || p->next->next==NULL)