gpt4 book ai didi

c - 设置指向空段错误的指针

转载 作者:行者123 更新时间:2023-12-04 20:43:37 25 4
gpt4 key购买 nike

我有一个名为 node 的结构,如下所示:

struct node {
int data;
}

存储在某种结构中:
struct structure {
struct node *pointer;
}

我正在尝试将指针设置为 NULL,如下所示:
struct structure *elements;
elements->pointer = NULL;

为什么会出现这个段错误?它是否真的尝试在将指针设置为 null 之前取消引用它?

当我将 elements 从指向实际结构的指针切换并执行以下操作时:
struct structure elements;
elements.pointer = NULL;

它会停止段错误并起作用。为什么将指针设置为 null 不起作用?

最佳答案

struct structure *elements;
elements->pointer = NULL;
elements 指针不指向任何地方。取消引用无效指针( elements 指针)是未定义的行为。

您需要将 elements 指针初始化为有效对象,例如:
struct structure my_struct;
struct structure *elements = &my_struct;
elements->pointer = NULL;

关于c - 设置指向空段错误的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11295622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com