高手请进:关于C51动态内存分配的问题,急!!!

ht_toto 2003-01-19 02:35:24
请教各位大哥,C51中,若要进行动态内存分配的话,一定要在XDATA(即外部RAM)中分配吗?在片内RAM中可以吗?怎么做?(我用Keil C51,malloc()函数来做时,发现只能分配到XDATA。)
十分感谢!
...全文
271 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ht_toto 2003-01-28
  • 打赏
  • 举报
回复
怎么啦,都不说话了?是太难了?还根本无法解决?还请高手指点指点啊!?谢谢!
lkfly 2003-01-22
  • 打赏
  • 举报
回复
你用的是什么单片机,一般来说,只要容量足够,系统会自动分配到片内RAM,只有在特别指定和RAM不够时才会分配到XDATA。编程时要注意有效利用RAM。
ht_toto 2003-01-22
  • 打赏
  • 举报
回复
我用的是AT89C51,128 Byte RAM。程序编译后,只有5-6百字节,DATA占用20来个字节,XDATA占用好像是8个字节(我只是在程序中字义一个指针变量,然后用malloc申请内存,最后用free释放内存)。这样来说,RAM应该是足够的了吧?为什么会这样呢?
aihui 2003-01-22
  • 打赏
  • 举报
回复
见上,要优化程序,对于内存来说,多用指针作参数传递
tuxw 2003-01-19
  • 打赏
  • 举报
回复
可能是片RAM不够你分配,所以分配到XDATA

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧