鉴于网上这个资料实在太少,将之前整理过却未彻底的一篇文章贴出来,但愿大牛指正vs下内存管理方式。可联系gaoshiqiang1987@163.com函数
1 int _tmain(int argc, _TCHAR* argv[]) 2 { 3 char *pcMem = (char *)malloc(8); 4 short *psMem = (short *)malloc(12); 5 int *piMem = (int *)malloc(16); 6 long *plMem = (long *)malloc(20); 7 float *pfMem = (float*)malloc(32); 8 double *pdMem = (double*)malloc(48); 9 10 system("PAUSE"); 11 return 0; 12 }
pcMem 0x007722c8 "屯屯屯屯铪铪" char * psMem 0x00772310 short * piMem 0x00772358 int * plMem 0x007723a8 long * pfMem 0x00779230 float * pdMem 0x00779290 double *
0x007722B8 08 00 00 00 01 00 00 00 7a 00 00 00 fd fd fd fd cd cd cd cd cd cd cd cd fd fd fd fd ab ab ab ab 0x00772300 0c 00 00 00 01 00 00 00 7b 00 00 00 fd fd fd fd cd cd cd cd cd cd cd cd cd cd cd cd fd fd fd fd 0x00772348 10 00 00 00 01 00 00 00 7c 00 00 00 fd fd fd fd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd 0x00772398 14 00 00 00 01 00 00 00 7d 00 00 00 fd fd fd fd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd 0x00779220 20 00 00 00 01 00 00 00 7e 00 00 00 fd fd fd fd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd 0x00779280 30 00 00 00 01 00 00 00 7f 00 00 00 fd fd fd fd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd
7a--char 7b--short 7c--int 7d--long 7e--float 7f--double
至于还有结构体以及类的分配可能须要另外讨论this
注1:这里写16byte是由于对比了分配内存首地址往前偏移8byte、16byte、32byte,发现16byte内存内容跟所分配的最接近,由于没有源码,因此只能作如上猜想spa
注2:没有实际资料证实,只是猜测,上面几个是基本数据类型,可是面对结构体或者类时其怎么表示尚不清楚操作系统