GNU手册页malloc定义了当free()使用相同的指针(先前由分配malloc())两次调用时,“发生未定义的行为”。
malloc
free()
malloc()
那是什么样的行为? 在哪里可以找到有关这种错误的更多信息?
“未定义的行为”仅表示不需要以任何特定方式处理该情况的实现; 任何 行为或结果均被视为“正确”。
free多次对指针进行操作的结果取决于malloc; 的基础实现;结果可能是崩溃和核心转储,或者可能破坏malloc竞技场(破坏将来的分配/释放),或者可能free完全忽略双精度。
free