私はHeapAllocを使って400 MBのような大量のメモリを割り当てますが、私のプログラムのメモリ使用量をチェックすると、実際には1 GBのように使います。ポインターを使用しているときにシステムがより多くのメモリーを割り当てる理由Windows?
//configuraciones.h
#define ANCHO_MUNDO 5000
#define ALTO_MUNDO 5000
//unidades.cpp
unidad* unidades_memoria = (unidad*)HeapAlloc(heap, //User Heap
NULL,ANCHO_MUNDO*ALTO_MUNDO*sizeof unidad);
unidad*** unidades = new unidad**[ANCHO_MUNDO]; //Default Heap
for(int i = 0; i < ANCHO_MUNDO;i++)
unidades[i] = new unidad*[ALTO_MUNDO];
unidad* actual = unidades_memoria;
unsigned int id = 0;
私は私のプログラムをdebuged、私はこのコードが実行されるとき
for (int y = 0; y < ALTO_MUNDO;y++)
for (int x = 0; x < ANCHO_MUNDO;x++)
{
unidades[x][y] = actual;
actual++;
unidades[x][y]->id = id;
id++;
unidades[x][y]->dueño = 0;
memset(&unidades[x][y]->addr,0,sizeof(unidades[x][y]->addr));
}
ですが、なぜでしょうメモリ使用icreasesことに気づきました?
unidad、ANCHO_MUNDOおよびALTO_MUNDOの宣言は何ですか?あなたはあなたが思っているよりも多くのメモリを求めているかもしれませんが、型とマクロの宣言を見ることなく理解するのは難しいです。 –