cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 4337|回复: 7

[fx-9860/9750] 9860 c语言中的getfree 的作用

[复制链接]
发表于 2013-5-27 16:50:51 | 显示全部楼层 |阅读模式
请问,9860的sdk的getfree函数是否可以求出可用内存大小
我用c语言编写了一段程序,在程序中 Bfile_GetMediaFree(DEVICE_MAIN_MEMORY,&free_size) 用来查看有多少剩余内存可用
后来将程序改变一下,多定义一些变量,结果发现两次得到的剩余内存是一样的,这是怎么回事呢,不应该两次结果一样的啊
 楼主| 发表于 2013-5-27 17:08:27 | 显示全部楼层
我想在程序运行的过程中知道还有多少剩余内存,因为用到大量的malloc以及free函数,我想知道有没有内存泄露的情况产生了
发表于 2013-5-27 17:21:56 | 显示全部楼层
chuxianbing 发表于 2013-5-27 17:08
我想在程序运行的过程中知道还有多少剩余内存,因为用到大量的malloc以及free函数,我想知道有没有内存泄露 ...

不需如此,只要判断malloc返回的指针是否为空即可,如果一定要知道用户可以申请多少内存,可以实际测试一下,数值在我看来是很大的,普通一点的应用根本用不完
发表于 2013-5-27 17:22:03 | 显示全部楼层
chuxianbing 发表于 2013-5-27 17:08
我想在程序运行的过程中知道还有多少剩余内存,因为用到大量的malloc以及free函数,我想知道有没有内存泄露 ...

不需如此,只要判断malloc返回的指针是否为空即可,如果一定要知道用户可以申请多少内存,可以实际测试一下,数值在我看来是很大的,普通一点的应用根本用不完
 楼主| 发表于 2013-5-27 19:22:20 | 显示全部楼层
我只是想监测一下内存时候存在泄露,用malloc是测试不出来的
 楼主| 发表于 2013-5-27 19:24:28 | 显示全部楼层
因为存在内存碎片,所以用malloc不好检测有多少可用内存
发表于 2013-5-27 20:41:35 | 显示全部楼层
chuxianbing 发表于 2013-5-27 19:24
因为存在内存碎片,所以用malloc不好检测有多少可用内存

其实不存在碎片,这个和9860的add-in加载机制有关,就算退出时不free内存,再次加载add-in时也不会有问题。只是如果malloc了过多内存,而又想申请新的,就只能free掉不用的一些。
发表于 2013-5-27 21:06:56 | 显示全部楼层
如果一定要知道可以malloc多少内存,写个循环就能跑出来了。
add-in中增加或减少变量和main memory的剩余字节数无关。
 楼主| 发表于 2013-5-27 21:58:23 | 显示全部楼层
正在研究malical的解释器,正在不断的改写程序,希望能写成一个真正实用的工具,9860的内存实在太少了,有没有办法将闪存来模拟成内存来用呢?



您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-11-22 05:39 , Processed in 0.059694 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表