小编典典

malloc双重释放行为

linux

GNU手册页malloc定义了当free()使用相同的指针(先前由分配malloc())两次调用时,“发生未定义的行为”。

那是什么样的行为?
在哪里可以找到有关这种错误的更多信息?


阅读 273

收藏
2020-06-07

共1个答案

小编典典

“未定义的行为”仅表示不需要以任何特定方式处理该情况的实现; 任何 行为或结果均被视为“正确”。

free多次对指针进行操作的结果取决于malloc;
的基础实现;结果可能是崩溃和核心转储,或者可能破坏malloc竞技场(破坏将来的分配/释放),或者可能free完全忽略双精度。

2020-06-07