在这里和大家探讨一下malloc函数

2020-02-05 09:07发布

  大家好:
我们都知道malloc是用来开辟内存空间的,而且是堆内存的空间,在PC机上编程是有堆内存和栈内存的区别的;但是如果我们是在51单片机中编写程序的,那么这malloc是开辟哪里的空间呢,ram的data区呢,还是xdata(如果有xdata的情况),还是先data和xdata都可以,看那里有空间?在51单片机编程中,是否也有堆内存和栈内存的区分,如果有是怎么区分。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
eduhf_123
1楼-- · 2020-02-06 04:00
lusson 发表于 2012-6-8 20:44
有个初始化函数的,你搜索init_mempool

int_mempool(void_MALLOC_MEM_*pool,unsigned int size)

6楼正解!
nicksean
2楼-- · 2020-02-06 07:35
 精彩回答 2  元偷偷看……
lusson
3楼-- · 2020-02-06 10:00
我之前用过。
在KEIL工程中把一段外部RAM不用,然后初始化POOL到这一段使用。
但后面发现有的时候会出莫名其妙的问题,也有可能是我程序的问题,没去深究。
就自己做了一个简单的,但就是建几个长度不一样的数组去分配,有点死,不过至少没出问题
liudaolunhui
4楼-- · 2020-02-06 11:28
   那用const的好处倒是不少呀!!!!!!!!!!!!

一周热门 更多>