几种空间出错应该如何解释?
char *str1;char* str2=new char[5];
strcpy(str2,"ugly");
strcpy(str1,str2); //1、错:str1没有空间可储
strcpy(str2,"Hello");//2、错:str2空间不够
str2="Hello"; //3、原来的"ugly"空间脱钩,导致内存泄漏
第1种编译时就出错,这个可以理解。
第2、3种编译不出错,并且运行也正常,再加3个字符也不出错。不知道它是如何出错的,有谁知道的还请解释一下?