0

誰かがこれの間違いを指摘できますか

#include <stdio.h>
void modify (char*s,int x,int y)
{
    s[x]=s[y];
}
main()
{
   char* s = "random";
   modify(s,1,2);
}

プログラムは突然終了します。これは非常に簡単な質問かもしれませんが、私はcが初めてです。ありがとう !

4

2 に答える 2

6

での割り当て中にクラッシュするためmodifyです。その理由は、ポインターが変更できない定数文字列を指しているためです。

文字列を変更したい場合は、代わりに配列として宣言できます。

char s[] = "random";
于 2013-01-08T14:30:46.793 に答える
0

それでおしまい。私はかつて同じ問題を抱えていました。次の行を置き換える必要があります。

 char *s = "random";

次のもので:

char s[] = "random";
于 2013-01-08T14:39:13.627 に答える