gpt4 book ai didi

c++ - 如何捕获或处理 free() 或 delete() 中的段错误

转载 作者:太空宇宙 更新时间:2023-11-04 05:52:39 27 4
gpt4 key购买 nike

在 C++ 中,我有一个 24*7 连续运行的服务器代码,但有时在释放缓冲区时会出现段错误。我也尝试过try catch

        try {
free(partialBuf);
} catch (...) {
printf("Caught partial buf free error");
}

提前致谢!

最佳答案

由于您显然能够使用 try/catch,因此您正在编写 C++ 代码。它有助于了解您正在使用哪种语言。

解决方案是使用std::shared_ptr。您可能有多个地方的指针超出了范围。使用shared_ptr,您不再调用free并且作为奖励,shared_ptr只会调用delete一次(在最后一个指针超出范围之后)。

但是,您现在应该使用 new 而不是 malloc 分配内存。

关于c++ - 如何捕获或处理 free() 或 delete() 中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29074248/

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