Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;指针不为null,但无法释放_C++_Pointers_Sigabrt - Fatal编程技术网

C++ C++;指针不为null,但无法释放

C++ C++;指针不为null,但无法释放,c++,pointers,sigabrt,C++,Pointers,Sigabrt,我正在实现一个开放哈希表。我的问题出现在析构函数中,在析构函数中我遍历数组中的所有bucket,对于每个数组,我将删除链表中的所有节点 //解除分配所有存储桶 对于(int i=0;不精确; 删除临时文件; } } 删除[]m_数据; 但它报告在删除操作中未分配被释放的指针。这里出了什么问题?错误非常清楚。您试图删除一个新未返回的值 我们不知道的是,该值是否是未分配值的地址,只是未初始化(垃圾),或者是否损坏了堆。您还没有提供确定这一点的信息 但是您知道您试图释放的值不正确,您需要找出它的来

我正在实现一个开放哈希表。我的问题出现在析构函数中,在析构函数中我遍历数组中的所有bucket,对于每个数组,我将删除链表中的所有节点


//解除分配所有存储桶
对于(int i=0;不精确;
删除临时文件;
}
}
删除[]m_数据;

但它报告在删除操作中未分配被释放的
指针。这里出了什么问题?

错误非常清楚。您试图
删除
一个新
未返回的值

我们不知道的是,该值是否是未分配值的地址,只是未初始化(垃圾),或者是否损坏了堆。您还没有提供确定这一点的信息


但是您知道您试图释放的值不正确,您需要找出它的来源。

错误非常清楚。您试图
删除
未返回的值

我们不知道的是,该值是否是未分配值的地址,只是未初始化(垃圾),或者是否损坏了堆。您还没有提供确定这一点的信息



但是你知道你试图释放的值是不正确的,你需要找出它的来源。

如果没有,我们无法帮助。可能你释放了指针2次,因为你的代码违反了3/5/0规则,可能指针与你分配的不一样,因为你增加了它。我很难想出一个原因当我运行整个项目时,似乎会出现问题,但当我隔离模板类并对其进行测试时,不会出现任何问题。我们可以给您一些猜测,但没有办法不进行猜测就提供帮助。
delete temp;
在删除之前将temp的值放在日志中。当您调用new时,也将返回的指针放在日志中。使我t清除您是否正在分配或释放。然后检查日志以验证您是否已删除分配的指针1次或多次,或者是否尝试删除未分配的指针。有一些工具可以帮助您调试此操作。如果没有,我们将无法帮到您。您可能释放了指针2次,因为您的代码违反了3/5/0 Ma规则ybe指针与您分配的指针不同,因为您增加了它。我很难想出一个问题,因为当我运行整个项目时,似乎出现了一些问题,但当我隔离模板类并测试它时,没有出现任何问题。我们可以给您一些猜测,但如果不猜测,就无法提供帮助。
delete temp;
put t删除之前日志中temp的值。调用new时,将返回的指针也放在日志中。请明确您正在分配或释放。然后检查日志,以验证您是否已删除分配的内容一次或多次,或尝试删除未分配的指针。有一些工具可帮助您调试此内容s、 在初始化过程中,我将数组m_data的所有元素都设置为nullptr。如果我发布整件事,你能看看我的模板类吗?在我对主要问题的评论中,我又给了你两个想法。更奇怪的是,当我在小规模上测试它时,没有出现任何问题,但当我在大数据集上部署它时任何事情都会出乱子这是你必须用调试器来解决的问题。@JohnsonZhou:你需要对代码进行故障排除。将分配给你的点写入日志文件,然后在准备释放它们时检查它们。从未见过你的代码,我不能做很多事情。调试并不总是容易的。在初始化过程中,我设置了所有的e数组的元素m_data to nullptr。如果我发布整个内容,你能看看我的模板类吗?我在对主要问题的评论中又给了你2个想法。更奇怪的是,当我在小规模上测试它时,没有出现任何问题,但当我在大数据集上部署它时,一切都乱成一团g您必须使用调试器来解决问题。@Johnson Zhou:您需要对代码进行故障排除。将分配给您的点写入日志文件,然后在准备释放它们时进行检查。由于从未见过您的代码,我不能做很多工作。调试并不总是那么容易。