Cで3D配列プログラムを作っています。
[31][11][99]
コードを入力すると正常に動作します。
しかし[31][11][999]
、コードを入力しても実行されません。
のせいですarray size
か??
それが理由である場合、Cのプログラムの最大配列サイズはどれくらいになるでしょうか。3D array
Cで3D配列プログラムを作っています。
[31][11][99]
コードを入力すると正常に動作します。
しかし[31][11][999]
、コードを入力しても実行されません。
のせいですarray size
か??
それが理由である場合、Cのプログラムの最大配列サイズはどれくらいになるでしょうか。3D array
スタック領域が不足している可能性が最も高いです。Linux のスタックulimit -s
のサイズは、スタックのサイズ (KiB) を使用して調べることができます。配列には 340659 要素が含まれます。要素ごとに 4 バイトと仮定すると、配列は 1362636 バイトになります。私のマシンのスタックサイズは
$ ulimit -s
8192 # KiB
最初の例では 135036 KiB が得られます。原則として、ニーズに合わせてスタック サイズを変更することは可能ですが、ヒープ上の配列にメモリを割り当てることをお勧めします ( C++ のメモリ割り当て領域 (スタック vs ヒープ vs 静的) )。
その方法については、ここで説明します: C で 3 次元配列を malloc しますか?