标签:ret 直接 ddr 研究 mem printf 产生 操作 address
上代码直接研究:
int main() { int *heap_d; int *heap_e; int *heap_f; heap_d = (int *)malloc(10); heap_e = (int *)malloc(10); printf("The d address is %p\n",heap_d); printf("The e address is %p\n",heap_e); free(heap_d); heap_d = NULL; heap_f = (int *)malloc(30); printf("The f address is %p\n",heap_f); return 0; }
输出:
The d address is 0xf0d010 mem_d The e address is 0xf0d030 mem_e The f address is 0xf0d460 mem_f 可想而知,总共三段内存分配
mem_d|mem_e|
free
|mem_e|
|mem_f|
|xxxx| | |
xxx为无用内存,碎片,即使分配后已经free和置NULL操作。
越来越多的malloc使用,会促进内存碎片化加剧,最终内存不足。
标签:ret 直接 ddr 研究 mem printf 产生 操作 address
原文地址:https://www.cnblogs.com/real-watson/p/14592323.html