2011-07-01 18 views
0

「最高」の動きを検索するMinimaxツリーを使用する「ピラミッド」ゲームを開発していますが、ゲームがフリーズしています。Visual Studio C++で使用可能なメモリサイズ

私の推測では、それはメモリの問題ですが、私はわずか124kbのメモリしか使用していません。新しい演算子でどのくらいのメモリを割り当てることができますか?または、デフォルトでアプリケーションに割り当てられているメモリの上限はいくらですか?

+0

「フリーズ」とはどういう意味ですか?問題を示すコードを表示できますか? – Bart

+2

私には記憶がないようには聞こえません。無限ループのように聞こえます。誤りのある論理。 –

+3

コードをデバッグしようとしましたか?プログラムがフリーズすると、一時停止して何が起こっているかを確認します(つまり、コールスタックとローカル変数を調べます)。あなたの控除は控除ではなく、コードをデバッグするまでは推測に過ぎません。ソフトウェア開発者の推測は、疲れた人生のためのレシピです。 –

答えて

2

OSは、各時間に割り当てることができるメモリの量を決定するため、質問に答えることができません。

私はあなたになりますが、何か間違ったことをするコンパイラまたは環境ではなく、間違ったコードを表示します。ほとんどのプラットフォームでは124kbは何もありません。

bad_allocがスローされない場合は、新しい呼び出しが失敗することは本当に疑問です。確かに本当の問題ではありません。

+0

okこれは大学のプロジェクトです。クラスメイトはこの問題を抱えていますが、ツリーの深さが4のアプリケーションがうまく動作しているので問題はありません=答えがおかげで – Rolilink

+0

再帰がうまくいかないように聞こえます – Grim

0

デフォルトでは制限はありません。

小さなオブジェクトを割り当てる場合は、通常、32ビットWindowsで1〜1.5GBを取得できます。

+0

大規模アドレス指定が有効でない場合、それ以外の場合は3GBまで上がることがあります。 – Ajay

+0

@Ajay - アドレス空間の一部はコードで使用され、一部はフラグメンテーションのために使用できないことが多いため、1.5GBは実用的な限界以上です。しかし、124k以上の方法! –

+0

私は同意します。しかし、技術的には2GBです。第二に、コードは500 MBではなく、最も一般的です! – Ajay

0

メモリの問題がクラッシュする前にゲームをフリーズする原因になるとは思わない。おそらくどこかで無限のループがあります。メモリに問題があった場合は、ループの問題ではなく、何らかのエラーメッセージが表示されると思います。

0

おそらく、すべてのメモリを消費しているわけではありませんが、すべてのCPUを消費しています。 ゲームプログラムのロジックを確認してください。

1

スタックオーバーフローの可能性も考えます。特に、アルゴリズムに再帰が含まれる場合。

関連する問題