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);