RAMから所定の数のGBを割り当てるアプリケーションを開発しようとしています。 1GBのRAMを割り当てようとすると問題なく動作しますが、1GBを超えるとクラッシュします。1GB以上のメモリ割り当てエラー
私はWindows 7 - 64bitを使用していますが、6GBのRAM(Installed Memory)があります。 (msvcr120d.dllを0x0F993FD4で
初回例外:私はQtのと、このアプリケーションを開発し、私は2013年
コードはここにあるのVisual Studioを使用しています:
int size = 1024 * 1024 * 1024; m_Size = ui.CPUAllocationEntry->text().toInt(); m_Arr =(char*) malloc(sizeof(char)*size*m_Size); memset(m_Arr, 1, size*m_Size); if (m_Arr == NULL) { qDebug() << "Pointer Null" << endl; } else qDebug() << "Pointer NOT null" << endl; return;
し、エラーがあります)ttool.exe:0xC0000005:0x00000000の場所を記述するアクセス違反。
ttool.exeの0x0F993FD4(msvcr120d.dll)で未処理の例外が発生しました。0xC0000005:0x00000000というアクセス違反の書き込み違反。
私はこれを32ビットアプリケーションとして試してみましたが、64ビットアプリケーションも試しましたが、結果は同じでした。また、私は/ LARGEADRESSAWAREリンカのオプションを試しました。しかし、私は解決策を見つけることができませんでした。
私はそれがどれくらいのRAMを使用しているのか知っていますが、3.02GBのRAMを使用して2GBを割り当てようとするとクラッシュします。
どうすればこの問題を解決できますか?
'memset'は条件の下にある必要があります。少なくとも、それはクラッシュせず、 'Pointer Null'を印刷しません。 – LogicStuff
利用可能なメモリがあまりない可能性があります。 – molbdnilo
かなりのメモリリークが発生したアプリケーションを作成し、1GB以上のRAMを取得した場合は、おそらくWindowsでクラッシュしてしまいます。これは、Windows 7 -64ビットで、マシンで4GBが利用可能でした。 – DrDonut