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错了吗?总是说“访问违规写作位置”......
答案 0 :(得分:0)
您在配额中指定的字符串是常量字符串并存储在只读内存中。所以
之后x = "abc"
x指向只读存储区。当你尝试使用cpy在那里写时,你会得到例外。