gpt4 book ai didi

c++ - 析构函数导致段错误

转载 作者:行者123 更新时间:2023-11-30 04:18:28 25 4
gpt4 key购买 nike

我知道那里有很多类似的问题,但我还没有找到任何有帮助的问题。我已经在这里待了几个小时了,这让我发疯。当为复制构造函数创建的变量调用析构函数时,出现段错误。

//Copy Constructor
Stack::Stack(const Stack &aStack)
{
size = 0; //this is incremented as new items are pushed onto the stack.
cap= aStack.cap;
items = new int[aStack.cap]();
for (int i = 0; i < aStack.size; i++)
this->push(aStack.items[i]); //Adds an item if not full and increments size
// I have also tried: items[i] = aStack.items[i]
}

//Destructor
Stack::~Stack()
{
cap= 0;
size= 0;
delete [] items;
items = NULL;
}

我觉得我做的复制构造函数是错误的,但我不知道它是什么。

最佳答案

行:

for (int i = 0; i < aStack.top; i++)

应该是:

for (int i = 0; i < aStack.size; i++)

这是段错误,因为您可能试图访问超出范围的索引或类似的东西(未定义的行为区域)。

关于c++ - 析构函数导致段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16410281/

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