私は次のようなchar*
配列を持っています:
char *tbl[] = { "1", "2", "3" };
sizeof
演算子を使用して配列の要素数(ここでは3)を取得するにはどうすればよいですか?
以下はうまくいきましたが、それは正しいですか?
int n = sizeof(tbl) / sizeof(tbl[0])
はい、
size_t n = sizeof(tbl) / sizeof(tbl[0])
これを行う最も一般的な方法です。
int
配列サイズに使用するのは最善の方法ではないことに注意してください。
短く、間違いなく、よりクリーンなバージョンは次のようになります。
sizeof tbl / sizeof *tbl
:)
はい、配列tb1の要素数がわかります。
int n = sizeof(tbl) / sizeof(tbl[0])
解釈:
sizeof(tb1)は、配列全体のサイズを示します。つまり、tb1= 3バイトです。
sizeof(tb1 [0])は、文字のサイズを示します。tb1[0]は、文字値(アドレスtb1 + 0の値)= 1バイトを示します。
これら2つを分割すると3つの要素が得られます