可能重复:
为什么我写超出数组末尾时不会出现分段错误?
当我意识到发生了一些奇怪的事情时,我只是在玩指针。我知道,每当我们想使用strcpy将字符串src复制到另一个字符串dst时,我们应该为src分配所需的空间。
char *dst,*src = "asdlskafksdhfklshfkshdkfhksdhfçsahdflçsdhfçklshadfç";
dst = (char*)malloc(1); //only one char allocated
strcpy(dst,src);
printf("dst=%s.\n",dst);
此代码不应执行。然而,这并没有发生。代码执行,成功地将src复制到dst并像魅力一样打印dst 。有人可以解释一下为什么会这样吗?