我写了一段错误的代码,只有在 Visual Studio 的发布模式下多次运行(大于 50 次)后才会崩溃。有人能解释一下为什么这段代码没有更早崩溃吗
char *pcBuffer= "Some Text";
char *pctempBuff = NULL;
pctempBuff = malloc(100);
memset(pctempBuff,0,100);
memcpy(pctempBuff,pcBuffer,100);
上面的代码在多次运行后崩溃了。
我将其更正为以下正确的代码,并且不再崩溃
char *pcBuffer= "Some Text";
char *pctempBuff = NULL;
pctempBuff = malloc(strlen(pcBuffer)+1);
memset(pctempBuff,0,strlen(pcBuffer)+1);
memcpy(pctempBuff,pcBuffer,strlen(pcBuffer)+1);