C で文字列のさまざまな配列を定義したいのですが、たとえば次のように、他の値に応じて選択できます。
char foo[][10] = {"Snakes", "on", "a", "Plane"};
char bar[][10] = {"Fishes", "in", "a", "Lake"};
char *choice;
if (flag == 1) {
choice = &foo;
} else if (flag == 2) {
choice = &bar;
}
printf("%s%s\n", choice[0] , choice[1]);
ケースで期待される結果flag
は 1:
スネークソン
ケースで期待される結果flag
は 2:
フィシェシン
しかし、上記のコードではエラーが発生しますが、 、つまりとsegmentation fault
の異なる定義を試しました。それを正しく行う方法は?この問題、つまりポインター、配列、上記の例の正確な内容に関する優れたチュートリアルはありますか...char
char*
char**
foo