gpt4 book ai didi

c++ - 指针数组为什么会出现段错误?

转载 作者:行者123 更新时间:2023-11-30 03:42:47 24 4
gpt4 key购买 nike

我在这方面遇到了很多麻烦,并通过调试器运行它,但我仍然无法找出问题所在。尝试访问指针数组的成员会导致段错误,该指针数组应初始化为零。导致问题的行如下。任何关于为什么会发生此错误的指导将不胜感激。

class BNode
{
public:
const int m = 6;
BNode();
~BNode();
int keyCount;
BNode **pointers;
int *keys;
void split(int index, BNode *child);
void _insert(int value);
};

BNode::BNode()
{
pointers = new BNode*[m];
cout <<pointers[0]->keyCount; //THIS IS THE TROUBLE LINE**************
keys = new int[m - 1];
keyCount = 0;
}

最佳答案

您的构造函数为六个指针分配了一个数组。

然后您访问了第一个指针引用的对象。

问题是你没有分配任何对象。您的六个指针未初始化。

new BNode*[6]; // ...essentially

这分配了六个指针。这不会分配六个对象。两个完全不同的东西。

关于c++ - 指针数组为什么会出现段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36614023/

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