dar*_*sky 2 c pointers segmentation-fault
我有一个名为node的结构如下:
struct node {
int data;
}
Run Code Online (Sandbox Code Playgroud)
存储在某种结构中:
struct structure {
struct node *pointer;
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试将指针设置为NULL,如下所示:
struct structure *elements;
elements->pointer = NULL;
Run Code Online (Sandbox Code Playgroud)
为什么会出现这种错误?在将指针设置为null之前,它是否实际尝试取消引用指针?
当我elements从指针切换到实际结构并执行以下操作时:
struct structure elements;
elements.pointer = NULL;
Run Code Online (Sandbox Code Playgroud)
它停止segfaulting和工作.为什么不设置指向null的指针?
struct structure *elements;
elements->pointer = NULL;
Run Code Online (Sandbox Code Playgroud)
elements指针指向无处.取消引用无效指针(elements指针)是未定义的行为.
您需要初始化elements指向有效对象的指针,例如:
struct structure my_struct;
struct structure *elements = &my_struct;
elements->pointer = NULL;
Run Code Online (Sandbox Code Playgroud)