鬼脚七 发表于 2018-7-30 09:57:45

动态分配内存的意义与应用场合

请教大家,在学习RTX时,我始终没有搞清楚动态分配内存的意义。是因为RTX没有内存管理,所以要求用户自己处理,还是由于给用户开放这个功能,能使内存管理更为高效?
在什么场合下需要进行动态分配内存的操作呢?请大家不吝赐教。

eric2013 发表于 2018-7-30 10:08:26

有。有两种。
1、一种是是数组式方式的动态分配,每次分配大小固定,这种方式安全可靠,uCOS一直用的这种方式。
这个看教程即可:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=14837&extra=page%3D1

2、另一种是类似malloc方式的,这种方式有碎片问题,所以使用的时候一定要保证成对使用,避免碎片,对应的文件是rt_memory.c
这个看综合Demo例子即可
http://www.armbbs.cn/forum.php?mod=viewthread&tid=17330&extra=page%3D1

鬼脚七 发表于 2018-7-30 10:38:14

eric2013 发表于 2018-7-30 10:08
有。有两种。
1、一种是是数组式方式的动态分配,每次分配大小固定,这种方式安全可靠,uCOS一直用的这种 ...

内存动态分配应用场合能不能理解为,类似更高级的C#等语言中的arraylist,
即需要更改数组大小时,动态分配就派上用场了。若是一个定长的数组,也没有必要使用内存动态分配,请教版主,这样的理解对吗?:handshake

eric2013 发表于 2018-7-30 10:42:11

鬼脚七 发表于 2018-7-30 10:38
内存动态分配应用场合能不能理解为,类似更高级的C#等语言中的arraylist,
即需要更改数组大小时,动态 ...

简单些可以。

类似malloc的动态内存用在什么地方呢,像MP3解码,JPEG解码,视频解码等地方,因为他们的接口函数就是这种需要随意申请各种大小的空间。

eric2013 发表于 2018-7-30 10:42:14

鬼脚七 发表于 2018-7-30 10:38
内存动态分配应用场合能不能理解为,类似更高级的C#等语言中的arraylist,
即需要更改数组大小时,动态 ...
简单些可以。

类似malloc的动态内存用在什么地方呢?像MP3解码,JPEG解码,视频解码等地方,因为他们的接口函数就是这种需要随意申请各种大小的空间。

鬼脚七 发表于 2018-7-30 10:46:33

eric2013 发表于 2018-7-30 10:42
简单些可以。

类似malloc的动态内存用在什么地方呢?像MP3解码,JPEG解码,视频解码等地方,因为他们 ...

谢谢版主,现在读您的RTX教程就更清晰明白了:handshake
页: [1]
查看完整版本: 动态分配内存的意义与应用场合