ページ 11

2次元配列のエラーご指摘お願いします

Posted: 2011年7月01日(金) 15:12
by 三木
以下のような配列を作ったのですが、エラーが出ます。
「invalid initializer on array」等です。
char Ablock_name_table[][3] = {
{"yamada", "", ""},
{"yamada", "yamada", ""}
};

おかしなところをご指摘ください。

Re: 2次元配列のエラーご指摘お願いします

Posted: 2011年7月01日(金) 17:26
by ISLe
2次元配列を3次元のデータで初期化しようとしています。
文字列はcharの配列です。

char Ablock_name_table[][3][N] = { … /* Nは文字列を格納するのに十分な大きさの値 */

const char *Ablock_name_table[][3] = { …

どちらかが期待されているものではないかと想像します。

Re: 2次元配列のエラーご指摘お願いします

Posted: 2011年7月01日(金) 17:36
by haga
[]はややこしいので
文字列の配列を扱うときは*を使うべきだと思います。

Re: 2次元配列のエラーご指摘お願いします

Posted: 2011年7月01日(金) 19:05
by ISLe
haga さんが書きました:[]はややこしいので
文字列の配列を扱うときは*を使うべきだと思います。
[]で確保した領域は初期化された文字列を書きかえることができます。
*で文字列リテラルを差しているときは(基本的に)書きかえることができません。
違いがあるので、きちんと使い分けるべきかと思います。