コンパイルするとコアダンプになるのですが、原因が分かりません。誰か教えていただけないでしょうか。 /* phan_3d.c */ #include<stdio.h>

C言語関連79閲覧

ベストアンサー

0

その他の回答(2件)

0

既に解決済みかもしれませんが、 コアダンプにも、色々種類がありますので、 表示されたメッセージも併せて載せた方が解決がはやいと思います。 既出回答にあるとおり、 変数 img が大きすぎて、 スタックオーバーフローになっているように思えます。 int img[nz][ny][nz]; の部分をmain()関数の外に出して、 グローバル変数にしてしまう手もあります。

0

コンパイルすると、ですか? 実行すると、ですか? それはとても大きな違いなのですが。 実行時なら、スタックを使い潰しているからだと思います。必ずではないですが今どきのシステムで大抵の場合スタック領域は数Mバイト。一方、intが4バイトとして128x128x128の配列が占めるのは8MB。自動変数でスタック上に確保しようというのは無理というものでしょう。