マトリョーシカ的日常

ワクワクばらまく明日のブログ。

配列の要素数を知る(C言語とMATLABで比較)

Excel Array - 無料写真検索fotoq
photo by aidken

 調べてみたけど、Cって本当に面倒くさい。行列のサイズを知るだけなのになんでこんなにコードを書かないといけないんだ。
 Cではsizeof演算子というものをつかってサイズを知るらしい。でもこれ、単純に要素数を出すわけではないようで、以下のプログラムでも6×4の行列なのに、96という答えが出る。なぜだ。

#include 
int main()
{
	int pack[6][4];
	const int A=sizeof pack;
	const int B=sizeof pack/ sizeof pack[0];
	const int C=sizeof pack[0];
	const int D=sizeof pack[0]/sizeof pack[6][4];
	const int E=sizeof pack[6][4];
	
	printf("%d\n",A);
	printf("%d\n",B);
	printf("%d\n",C);
	printf("%d\n",D);
	printf("%d\n",E);

        return 0;
}

実行後↓

96
6
16
4
4
logout

[プロセスが完了しました]

 ちなみにMATLABでは

pack=zeros(6,4);
disp(size(pack));

実行後↓

[6 4]

簡単ですね♪


参考:
C言語の配列のサイズ(3/3) | C・C++のQ&A【OKWave】