我有一段代码曾经在visual studio的发布模式下崩溃。虽然我已经修好了,但我想知道,为什么事故真的发生了。
有一段代码以下列方式编写。
char *output = strdup(strcat(strdup(text1),strdup(text2)));
我知道这是一段荒谬的代码,我想知道这个人写这篇文章时的想法是什么!但我的问题是为什么代码在这一点上没有崩溃。它在被调用的3-4个函数之后崩溃,它具有多个malloc并且可以自由调用。
代码在某个时刻崩溃的原因是什么,即使实际的内存损坏更早发生了?