У меня проблема. Мне нужно выделить несколько очень больших полей с миллиардами элементов с плавающей точкой.
В данный момент я использую:
float ****spaceE;
int x,y,z;
x = y = z = 100;
spaceE = (float****)malloc(x*sizeof(int));
for (int i=0; i<x; i++)
{
spaceE[i] = (float***)malloc(y*sizeof(int));
for(int j=0; j<y; j++)
{
spaceE[i][j] = (float**)malloc(z*sizeof(int));
for(int k=0; k<z; k++)
{
spaceE[i][j][k] = (float*)malloc(size[3]*sizeof(float));
}
}
}
Но он съедает более 2 ГБ памяти, и Windows завершает его. Мне нужно иметь несколько таких массивов и гораздо больше, есть ли лучший способ сделать это?