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;”时运行良好 从标记的行它不起作用并打印“成为或不成为”两次以及“吃或不吃两次”这是为什么?