gpt4 book ai didi

c++ - 在 C++ 中创建带有结构的节点时出现段错误

转载 作者:太空宇宙 更新时间:2023-11-04 16:09:02 24 4
gpt4 key购买 nike

我使用以下结构作为堆的节点

struct Node
{
int k;
}*p,**array;

然后我创建了一个堆类。在我的代码中,我必须在一个函数中初始化堆,然后执行以下操作

for (int i= 0; i < V;i++)
{
array[i] = newNode(0);
}

其中函数 newNode() 如下:

struct Node* newNode(int k)
{
struct Node* node;
node->k = k;
return node;
}

问题是,当我调试我的代码时,它因函数 newNode() 中的段错误而崩溃,该行是:

node->k = k;

我真的不知道该怎么办:(

最佳答案

newNode 函数中,您还没有初始化您声明的node。因此,指向节点的指针未正确分配。要解决此问题,您必须使用 new 运算符。

struct Node* newNode(int k)
{
struct Node* node = new Node();
node->k = k;
return node;
}

关于c++ - 在 C++ 中创建带有结构的节点时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30814080/

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