内存管理的几个问题,先定义一个大数组,在用malloc给其他变量分配内存,会有地址重叠的情况吗?

2019-07-20 21:38发布

关于内存管理的问题,例如:已经先定义一个大数组 : u32 a[1024],然后再用内存管理给指针P分配2K内存 :p=mymalloc(sramx,2048);

请问:
1、数组a在RAM上的地址空间会出现与p的重叠吗?
2、p可以用myfree(sramx,p)释放内存,数组a[1024]能释放内存吗?
3、既然数组a是占用ram空间的,my_mem_perused(SRAMIN)是没有计算到数组a的占用的空间的?这样合理吗?

请大神指教!!!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
正点原子
1楼-- · 2019-07-21 11:54
rawgan 发表于 2016-6-23 11:55
数组a定义时,不是没有在内存管理表做标记吗;那用my_mem_perused(SRAMIN)计算的值就不包括数组a占用的内存 ...

当然不包括。
内存管理又没说要全部内存都用作管理。它只是管理大部分内存而已。全局变量什么的,和内存管理无关。
rawgan
2楼-- · 2019-07-21 14:23
 精彩回答 2  元偷偷看……
rawgan
3楼-- · 2019-07-21 15:21
冰封嗜魔 发表于 2016-6-24 08:34
很难,栈在启动文件里面已经定义大小了,一般不会超过1-2K。

好的。谢谢!

一周热门 更多>