我有一段代码,它在Visual Studio的调试模式下工作良好,但在发布模式下崩溃。经过大量的猜测工作后,我发现了导致崩溃的那段代码。memcpy在发布模式下的问题
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);
这在调试模式下完美工作,但在发布时崩溃。有没有人指出这个错误?
我在这两种调试模式下检查这段代码在Visual Studio 2010和发布模式......它完美。我假设你怀疑这段代码在一个大程序中..我不得不说,这部分不会产生麻烦 – hazzelnuttie
你有没有“free”指针分配 – hazzelnuttie
@hazzelnuttie我解决了这个问题,我在某个地方在此代码之上,strlen(temp + 3)而不是strlen(temp)+3! – user1692342