char str1[]= "To be or not to be";
char str3[]= "To eat or to eat";
char * str2=(char*)malloc(80);
//char str3[40];
str2[0]=NULL;
/* copy to sized buffer (overflow safe): */
strcat(str2, str1);
strcat(str2, str1);
free(str2);str2[0]=NULL;//<<==Marked line
strcat(str2, str3);
strcat(str2, str3);
次のコードでは、「食べるか食べないか」を2回出力する操作は正常に機能しますが、「str2 [0] = NULL;」を削除した場合 マークされた行から機能せず、「to be or not to be」を 2 回、「to eat or not to eat times」と出力するのはなぜですか?