打印

不明白同样是到外部存储器上读数据,malloc会比数组效率低这么多?

[复制链接]
1943|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiaxw|  楼主 | 2015-6-24 22:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求教一个DSP开发的问题:DSP上的堆栈都是在外部存储器上分配的,我一个函数中对比了两种方法:一个是malloc数据区域进行数据读写,另一个是定义数组,因为涉及到大循环操作,前者耗时比后者大了非常多,不明白同样是到外部存储器上读数据,malloc会比数组效率低这么多?

相关帖子

沙发
spark周| | 2015-6-24 22:47 | 只看该作者
你的段都是分配在外部RAM?

使用特权

评论回复
板凳
jiaxw|  楼主 | 2015-6-24 22:48 | 只看该作者
某些段在内,某些在外

使用特权

评论回复
地板
liliang9554| | 2015-6-24 22:48 | 只看该作者
你的数组应该是全局的吧,全局的不在栈里啊

使用特权

评论回复
5
jiaxw|  楼主 | 2015-6-24 22:48 | 只看该作者
哦,我明白了,多谢

使用特权

评论回复
6
vivilzb1985| | 2015-6-25 13:16 | 只看该作者
extern void *malloc(unsigned int num_bytes);分配长度为num_bytes字节的内存块。

使用特权

评论回复
7
vivilzb1985| | 2015-6-25 13:17 | 只看该作者
malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。

使用特权

评论回复
8
vivilzb1985| | 2015-6-25 13:17 | 只看该作者
该函数的原型,在以前malloc返回的是char型指针,新的ANSIC标准规定,该函数返回为void型指针,因此必要时要进行类型转换。

使用特权

评论回复
9
vivilzb1985| | 2015-6-25 13:17 | 只看该作者
分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。函数返回的指针一定要适当对齐,使其可以用于任何数据对象。

使用特权

评论回复
10
vivilzb1985| | 2015-6-25 13:18 | 只看该作者
这是malloc的基础资料的,需要多注意理解的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

825

主题

9762

帖子

4

粉丝