动态内存分配

liuming759   2013-10-24 20:48 楼主
典型的内存分配的使用方法:
unsigned char *buf;

buf=(unsigned char*)malloc(512*sizeof(unsigned char));  //生成一个堆栈内存

free(buf);  //释放内存

在CCS5.3的设置中,你并没有分配堆的内存,所以需要进行手动设置。需要修改的地方一共两处
(1)properties 的C2000 basic的设置修改
(2)修改.CMD文件,添加.system的内存段   /* Allocate uninitalized data sections: */
   .stack              : > RAMM0        PAGE = 1
   .ebss               : > DRAML0       PAGE = 1
   .esysmem            : > DRAML0       PAGE = 1
   .sysmem            : > DRAML0       PAGE = 1
  • 0334.Image00001.bmp

回复评论 (9)

回复 楼主liuming759 的帖子

不错的资料,不过不能算动态,因为不能回收
点赞  2013-10-24 21:50

回复 沙发huo_hu 的帖子

free()之后不就将内存回收了吗?请指教。

引用网络的帖子:

“The word static refers to things that happen at compile time and link time when the program is constructed—as opposed to load time or run time when the program is actually started.”

“The term dynamic refers to things that take place when a program is loaded and executed. ”



内存的静态分配和动态分配的区别主要是两个:

一是时间不同。静态分配发生在程序编译和连接的时候。动态分配则发生在程序调入和执行的时候。

二是空间不同。堆都是动态分配的,没有静态分配的堆。栈有2种分配方式:静态分配和动态分配。静态分配是编译器完成的,比如局部变量的分配。动态分配由函数malloc进行分配。不过栈的动态分配和堆不同,他的动态分配是由编译器进行释放,无需我们手工实现。  



[ 本帖最后由 liuming759 于 2013-10-24 14:30 编辑 ]
点赞  2013-10-24 22:26

回复 板凳liuming759 的帖子

没用过....
点赞  2013-10-25 10:55
引用: 原帖由 liuming759 于 2013-10-24 22:26 发表
free()之后不就将内存回收了吗?请指教。

引用网络的帖子:

“The word static refers to things that happen at compile time and link time when the program is constructed—as opposed ...

这个是你不?https://bbs.eeworld.com.cn/thread-416690-1-3.html
加油!在电子行业默默贡献自己的力量!:)
点赞  2013-10-25 11:59
这个谈不上“动态内存分配”吧。
CMD已经把一段固定地址划拨给了“堆栈内存”。其他变量或者程序不能放到这段地址里面。即使当前出现没有堆栈,这段地址也不能它用。所以谈不上“动态内存分配”。

举个例子吧,仓库里面有好多小房子,把其中一个房子划给看管仓库的用。那么不管那个看管仓库的有没有向那个房子里面放东西,放多少?仓库的货物是不能在放到那个房子里面的。相当于仓库容积=仓库总面积— 划给看管仓库的用房子。
点赞  2013-10-25 12:40

回复 6楼ltbytyn 的帖子

嗯,明白了。那如何实现动态内存的分配还是这个概念本身就是比较混淆的。
点赞  2013-10-25 22:42

回复 4楼huo_hu 的帖子

嗯,斑竹,我大言不惭了,请见谅。
点赞  2013-10-25 22:43

回复 5楼soso 的帖子

嗯,对的,我都忘了,谢谢soso姐提醒。
点赞  2013-10-25 22:59

在dsp上,说不上动态内存分配的,编译器并不是支持所有的C操作。。。

在dsp上,说不上动态内存分配的,编译器并不是支持所有的C操作。。。
我的新书:《TMS320F2833x DSP应用开发与实践》
点赞  2013-11-2 09:34
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复