malloc双重自由行为

Jah*_*Jah 2 c unix linux malloc gnu

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

这是什么行为?
我在哪里可以找到有关此类错误的更多信息?

hmj*_*mjd 7

C99标准规定了以下未定义的行为(在术语和定义部分下):

可能的未定义行为包括完全忽略具有不可预测结果的情况,在转换或程序执行期间以环境特征(有或没有发出诊断消息)的特定文档执行,终止翻译或执行(发布时)一条诊断信息).

总之:任何事情都可能发生.最糟糕的情况是程序按预期运行.