搜索
当前位置: 眀彩娱乐 > 动态存储分配 >

MicroBlaze:malloc 函数动态分配内存溢出

gecimao 发表于 2019-04-23 08:34 | 查看: | 回复:

  C函数库支持标准的内存管理函数,如malloc(),calloc(), free(),这些标准的C函数库定义在中。动态内存分配从内存的程序的堆(heap)中提供。所以堆的大小会直接影响调用malloc内存分配的大小。而堆的大小(heap size)是不能在运行的时候增加,这样需要在程序编译的时候确定合适的堆的大小,在大小可以EDK下generate linker script的时候,或者直接修改*.ld文件,例如:

  如果调用malloc(int size)函数的时候出现,malloc函数返回NULL,这就说明内存分配失败,原因是:

  针对以上两个原因,可以这样做修改heap_size 和增加实际的物理内存。

  这里要提醒一点:每次调用malloc,必须检查一下返回值,以保证实际内存分配的请求。

  在实践中,本人通过malloc申请一块近乎3MB内存空间用于存储图像数据,但是因为堆设置得太小了,返回值一直为NULL,内存分配失败。

本文链接:http://hem-larm.com/dongtaicunchufenpei/202.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部