2つの文字列を交換するコードを作成しました。
void swap (char *a, char *b)
{
char *t = a;
a = b;
b = t;
}
int main()
{
char * strings[2];
strings [0] = "luck!";
strings [1] = "good ";
swap (strings[0], strings[1]);
printf( "%s %s\n",strings[0], strings[1]);
return 0;
}
そしてそれは失敗します。私が理解するのに苦労しているのは、私が呼び出すときにswap()
2つのポインターを渡すことです。両方のポインタは、割り当てられた配列の最初の文字を指します。次に、関数内に一時ポインターを作成し、基本的な切り替えを実行しました。ここで何が欠陥ですか?このアプローチが間違っている理由を本当に理解したいですか?