3

合計サイズ 2 MB の少数のデータ型を割り当てています。

私は 1 つのヒープのみを使用し、特定の数の割り当てに達するまで問題なく動作します。次の割り当てでクラッシュするように 1 つの割り当てをコメントしたので、これはかなり確信しています。

クォータ = ディスク容量? ドキュメントには、この特定の関数のエラー コードは含まれていません。アプリケーションのプロファイルを作成しましたが、プロセスに割り当てられた空きメモリが十分にあります。また、ヒープポインターにデータブレークポイントを設定しましたが、壊れません。HeapAlloc への呼び出しまで、ステップスルーすると、ヒープポインターは問題ありません。

とても奇妙..

4

2 に答える 2

2

問題がオブジェクトの数なのかヒープの合計なのかを判断するために、エラーが発生するまで大きなメモリ チャンク (つまり >2MB) を割り当ててみてください。また、2 MB を超えるメモリを割り当てていませんか? 2 GB の制限に達したときにそのエラーを見たことがありますが、ページファイルがいっぱいでない限り、2 MB になることはありません。

他のすべてが失敗した場合は、再起動するか、別のマシンで試してください。

于 2010-01-22T03:16:22.930 に答える
1

WinNt.hのその値によると、例外コードは、 HeapAllocがスローする例外の1つにC0000017マップされます。したがって、メモリが不足しているか、割り当てられたバッファの1つがオーバーフローして、ヒープが破損しています。STATUS_NO_MEMORY

于 2010-01-22T03:40:21.877 に答える