回 帖 发 新 帖 刷新版面

主题:内存访问冲突

char *str = "acdefg";
char *p = str + 1;
char *q = str + 5;
while (*p++ = *q++)
    ;
printf( "%s", str );

在vs2008中运行上述代码,执行到while语句是会提示内存访问冲突,何解?

回复列表 (共2个回复)

沙发

这个我遇到过,费解过,其实你试试
char *p = "abc";
*p = 'd';
printf("%c",*p);
这都会报错的、、我问过别人,别人的解释是 p所指空间不能写。。

板凳

确实。字符串文字量,一般认为是不可以被修改的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册