char指针,访问冲突写入位置

时间:2013-09-07 07:56:26

标签: pointers char

void cpy(char *s, char *t)  {         
while((*s = *t) != '\0') {
    s++;
    t++;
  }
}
void main() {
char *x;
char *y;
x="abc";
y="zzz";
cpy(x,y);

}

这个功能有什么问题?部分* s = * t错了吗?总是说“访问违规写作位置”......

1 个答案:

答案 0 :(得分:0)

您在配额中指定的字符串是常量字符串并存储在只读内存中。所以

之后
x = "abc"

x指向只读存储区。当你尝试使用cpy在那里写时,你会得到例外。