我正在创建一个动态二维数组并对其进行分配。我的for循环在分配不正确的情况下运行10-15(每次都不相同)后给出错误。任何帮助,将不胜感激。

__int32 aLarge = 8121432;
__int32 bLarge = 8121784;
ActualPosition** myPositions;

myPositions = new ActualPosition*[aLarge];

for (int x = 0; x < aLarge; x++)
{
    try
    {
        myPositions[x] = new ActualPosition[bLarge];
    }
    catch (bad_alloc& ba)
    {
        // Error here
    }
}

最佳答案

如果sizeof(ActualPosition) == 1,则需要61,431 GB的内存来保存阵列。因此,除非您有一台非常大的计算机,否则您将耗尽内存。

关于c++ - 动态二维数组分配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30805030/

10-12 20:53