将结构指针分配给null结构指针内部的结构指针

  • 本文关键字:结构 指针 内部 null 分配 c++
  • 更新时间 :
  • 英文 :


这个问题可能很愚蠢,但我一直在想,如果你有会发生什么

struct List {
int x;
List *next;
};
struct List *start = nullptr;
struct List *tmp = start->next; 

tmp怎么了?

我试过编译它,没有出错。如果我输出start的地址,我得到0,但如果我输出了tmp,我什么都得不到。

在行struct List *tmp = start->next;上,因为我们知道start == nullptr,所以您正在取消引用nullptr值。这是UB(未定义的行为(,因此"任何事情"都可能发生。

这是一个未定义的行为。在多次执行之后,它可能会输出不同的结果,或者可能是分段错误。

最新更新