<分区>
Possible Duplicate:
Why don’t I get a segmentation fault when I write beyond the end of an array?
当我意识到发生了一些奇怪的事情时,我只是在玩指针。我知道每当我们想要将字符串 src 复制到另一个字符串 dst 时,例如使用 strcpy,我们应该分配所需的空间对于 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 。你们中有人可以解释一下为什么会这样吗?