我有一段代碼,它在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