我有一段代码可以在Visual Studio中的调试模式下很好地工作,但是在发布模式下会崩溃。经过大量的猜测工作,我发现了导致崩溃的那段代码。
char *buff ="some random text";
char *temp = NULL;
char *pos = NULL;
int len = strlen("random text");
pos = strstr(buff,"random");
temp = (char *) malloc(len+1);
memset(temp,0,len+1);
memcpy(temp,pos,len);
这在调试模式下可完美运行,但在发行时崩溃。有人指出错误吗?
最佳答案
所示的代码部分看起来不错。作为unwind答案的补充。失败的可能原因可能是
1)未初始化的变量
2)预处理程序符号_DEBUG和NDEBUG。如果#ifdef _DEBUG / #endif块中有任何代码。
3)编译优化
关于c - 发行模式下memcpy出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17183835/