三种内存分配方式:

1)从静态内存区分配。

程序中的全局变量与static 变量,程序在编译的时候已经分配好,这块内存在程序的整个运行阶段都有效。

2)从栈区分配

函数中的局部变量由此方式分配内存,函数结束时这些存储单元被释放。效率高,但分配的容量有限。

要注意函数结束时存储单元要被释放,因此这种情况是错误的:

char *Func()

{

char a[] = “funcreturn”;

.

.

.

 

return a;

}

 

3)从堆区创建

也成动态分配内存,编程人员可以用malloc、new申请任意多的内存,并负责在何时用free、delete释放内存。动态内存的生存期由编程人员决定,使用灵活,但也最复杂。

posted @ 2010-05-18 18:05  jiaozebo  阅读(691)  评论(0编辑  收藏  举报