0

Code::Blocks を使用して C でプログラミングしています。プログラムは適切にコンパイルされますが、実行時にクラッシュし、明らかに非常に有名な「Process returned -1073741819 (0xC0000005)」が表示されます。

どこでも検索しましたが、私の問題は他の場所で見つけたものとは異なるようです (ここに来る前に長い間答えを探していたことを知っておいてください)。

コードでcallocを数回使用していますが、問題ではないようです。問題の原因を見つけようとした後、「0を返す」ときにプログラムのバグのようです。最後に!

動的に割り当てたすべてのものを解放しようとすると(最初に行っていなかったこと)、この時点でプログラムがクラッシュします。

何が問題の原因であるかについての直感はありますか?

私のプログラムは 500 行の長さで、今のところかなり面倒なので、ここには入れません。私はCの初心者なので、何かを完全に見逃している可能性があります。私に厳しくしないでくれてありがとう=)

///編集:解決策を見つけました///

さて、コードがそのようにクラッシュした理由を理解したと思います(プログラムの後半でクラッシュした理由はわかりませんが、もっと早くクラッシュする必要があると思います...)。

動的に割り当てられた配列の構築に問題がありました。

興味のある方は、問題を解決するためにプログラムの構造を取得する必要がありました (プログラムが終了しておらず、読み取り可能なコメントが十分にないことを考えると、これはかなり醜いです...) 私のプログラムには 2 つの大きなループがあります (126-> 180 および 283->388); 1 つは動的に割り当てる複数の配列のサイズを取得するためのもので、2 番目はそれらを埋めるためのものです。これらのループはほぼ同じであると想定されています。ただし、最初のループの半分を忘れていました...サイズが正しくない(小さすぎる)ため、正しい数の整数で埋めました...

今では正常に動作します。私を助けてくれてありがとう、私はあなたのおかげで良い質問をしました=)(エラーが最後にあった理由はまだわかりません...)

4

1 に答える 1