-2

Cで3D配列プログラムを作っています。

[31][11][99]コードを入力すると正常に動作します。

しかし[31][11][999]、コードを入力しても実行されません。

のせいですarray sizeか??

それが理由である場合、Cのプログラムの最大配列サイズはどれくらいになるでしょうか。3D array

4

2 に答える 2

1

スタック領域が不足している可能性が最も高いです。Linux のスタックulimit -sのサイズは、スタックのサイズ (KiB) を使用して調べることができます。配列には 340659 要素が含まれます。要素ごとに 4 バイトと仮定すると、配列は 1362636 バイトになります。私のマシンのスタックサイズは

$ ulimit -s
8192   # KiB

最初の例では 135036 KiB が得られます。原則として、ニーズに合わせてスタック サイズを変更することは可能ですが、ヒープ上の配列にメモリを割り当てることをお勧めします ( C++ のメモリ割り当て領域 (スタック vs ヒープ vs 静的) )。

その方法については、ここで説明します: C で 3 次元配列を malloc しますか?

于 2013-11-13T12:34:22.600 に答える