0
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 の部分は間違っていますか? 常に「アクセス違反の書き込み場所」と表示されます...

4

1 に答える 1

0

クォータで指定する文字列は定数文字列であり、読み取り専用メモリに格納されます。だから後

x = "abc"

x は読み取り専用メモリ領域を指します。そして、そこに cpy で書き込もうとすると、例外が発生します。

于 2013-09-07T12:19:14.097 に答える