【发布时间】:2016-11-28 02:32:49
【问题描述】:
【问题讨论】:
-
一个原因可能是代码中某处的错误损坏了堆,而
malloc()因堆损坏而炸毁。附:不要在 C++ 代码中使用malloc()。 -
这就是我所担心的。这不是我的代码,这是标准库的 Windows 实现。
-
堆损坏通常在它发生很久之后就表现出来,并且出现在一段不相关的代码中。这种方式很恶心。所以,对甜甜圈来说,错误就在你代码中的某个地方,而且可能不在失败的代码附近。
-
@Mr G0z:你的代码破坏了堆完整性。之后任何代码都可能崩溃,包括标准库代码。这就是你正在观察的。查看您在屏幕截图中发布的代码毫无意义。在这种情况下,这不是罪魁祸首。
-
C++ 库当然可以使用
malloc()作为其new实现的一部分。
标签: c++ segmentation-fault malloc