• 締切済み

2次元配列の1次元目のバッファ

static const char *mainstr[][?] = {  "abc",  "123" }; このソースのabcや123の部分をたまに書き替えてコンパイルするということをしています。 そのときに?の数値を算出するのを手動でやっていますが、自動にするために?にプログラムを書くようなことはできないでしょうか? 大きい固定値にはしたくなく、最小の?の値にしておきたいです。

みんなの回答

  • ency
  • ベストアンサー率39% (93/238)
回答No.3

サイズが不定な文字列(配列)の配列には、No1 ttyp03さんが回答されているように、文字列を指すポインタの配列を使うしかありませんね。 # こうすることで、文字列の長さを考える必要がなくなりますよね。 あと、この場合の配列サイズは、私の場合は以下のようにします。 -------------------------------------------------------- sizeof(mainstr)/sizeof(mainstr[0]) -------------------------------------------------------- 要するに No2 MiracleCat さんとやりたいことは同じです。 # というか、一般に配列サイズを求める、こんなマクロも有名 # ですよね。 -------------------------------------------------------- #define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0])) --------------------------------------------------------

回答No.2

文字列ポインタの一次元並びなら No.1 の方の回答の通りだと思います。 その際の、サイズは sizeof(mainstr)/sizeof(char*) で求めるのが定石ですので、これで for() とか回せますよね。

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.1

これでいいのでは? static const char *mainstr[] = {  "abc",  "123" };

関連するQ&A

専門家に質問してみよう