p*****c 发帖数: 20 | 1 char str[] = "fisrt string";
char *str2;
strcpy(str2,str);
puts(str2);
编译可以通过,但运行的时候就出错了。
我把 char *str2 改成了 char str2[4], 就可以了。
请问为什么用指针会出错, 还有为什么在第2种情况里,即使我初始的str2的长度小于
要copy的 str的长度 反而没有问题。 | p****s 发帖数: 32405 | 2 指针没有分配内存.
【在 p*****c 的大作中提到】 : char str[] = "fisrt string"; : char *str2; : strcpy(str2,str); : puts(str2); : 编译可以通过,但运行的时候就出错了。 : 我把 char *str2 改成了 char str2[4], 就可以了。 : 请问为什么用指针会出错, 还有为什么在第2种情况里,即使我初始的str2的长度小于 : 要copy的 str的长度 反而没有问题。
| T*****9 发帖数: 2484 | 3 str2没有分配空间
【在 p*****c 的大作中提到】 : char str[] = "fisrt string"; : char *str2; : strcpy(str2,str); : puts(str2); : 编译可以通过,但运行的时候就出错了。 : 我把 char *str2 改成了 char str2[4], 就可以了。 : 请问为什么用指针会出错, 还有为什么在第2种情况里,即使我初始的str2的长度小于 : 要copy的 str的长度 反而没有问题。
| d******n 发帖数: 42 | 4 exactly
【在 p****s 的大作中提到】 : 指针没有分配内存.
|
|