簡體   English   中英

0x771515ee處的未處理異常Microsoft C ++異常:內存位置為0x0049f904的std :: bad_alloc

[英]Unhandled exception at 0x771515ee Microsoft C++ exception: std::bad_alloc at memory location 0x0049f904

我需要分配一個非常大的數組是否有一種方法來分配沒有這類錯誤的數組? 請注意,我有8 GB的內存而不使用向量這正是錯誤

Unhandled exception at 0x771515ee in __ Microsoft C++ exception:
 std::bad_alloc at memory location 0x0049f904.. 

這是我代碼的一大塊

#include<cstdlib>
int main()
{
  size_t arraySize =1024*1024*1024;
  int *a= new int[arraySize];
  for (int i = 0; i < arraySize; i++)
  {
    a[i] = 3;
  } 
  return 0; 
}

/ *感謝大家解決我的問題的方法是用x64位操作創建一個新的解決方案平台* /

您正嘗試在32位進程中分配4GB塊。 那是不可能的。 您被限制在2GB到4GB可尋址空間之間,但實際上在單個連續塊中可用的更少。

如果您確實需要在單個陣列中使用如此大的塊,那么您將需要切換到64位進程。 重新考慮您的算法可能是最佳解決方案。

32位地址空間可能沒有1GB的連續內存(絕對不是4GB)。 您必須編譯為x64。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM