をスキップこれが私の最後の質問のフォローです: C++ full system crash, release mode onlyC++リリース、メモリの割り当ては、コンストラクタ
基本的に私がリリースモードで、完全にOSを凍結され、ツリー状のデータ構造を有しています。これは、メモリ割り当てが突然急増したために発生します。これは、OSが処理できるものを超えています。
NULLにポインタを初期化し、必要に応じて(必要に応じて)見つけたら必要なコードをすべて確保しているので、このようなメモリリーク(これは分かりますが、それは分かります)は非常に奇妙です。 NULLにする。デバッグモードでは、この正しい動作が確認され、物事はうまく割り当てられています(私はNULLポインタが0にデバッガから設定されていることがわかります)。
しかし、リリースモードでは、状況が異なります。コンストラクタは完全にスキップされ、すべてのクラスの内部はランダムなガベージに初期化されます。これにより、ポインターにはひそかにも行き渡るようになり、システム全体がクラッシュするまでメモリーが割り振られます。
リリースモードでコンストラクタが無視されるのはなぜですか?
私はWindows 7でVisual Studio 2010を使用しています。
コードを投稿してください。 –
あなたは本当にあなたのコンストラクタがリリースモードで無視されているという問題があると思いますか? –
はい、私はそれをデバッグしました。投稿するにはあまりにも多くのコードがありますが、それは多かれ少なかれこれに基づいています:http://www.cmlab.csie.ntu.edu.tw/~wildmb/pbrt/octree_8h-source.html – Gigi