码迷,mamicode.com
首页 > 其他好文 > 详细

如何看待malloc产生内存碎片

时间:2021-03-30 13:44:13      阅读:0      评论:0      收藏:0      [点我收藏+]

标签: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使用,会促进内存碎片化加剧,最终内存不足。

 

如何看待malloc产生内存碎片

标签:ret   直接   ddr   研究   mem   printf   产生   操作   address   

原文地址:https://www.cnblogs.com/real-watson/p/14592323.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!