静态分配内存和动态内存的区别在那里?静态变量和静态分配内存有什么区别,动态分配内存和动态变量的异同

以上问题困扰着我,被卡住了,希望高手能尽量详细分析,谢谢

动态分配内存是程序运行时,程序员通过语句,给数组或结构等变量分配内存。通常在运行开始时,程序员并不知道数组将要有多少元素,而是运行时由用户输入的。动态分配(malloc)的内存,当不需要用时可以取消。当需要再次增加单元时可以增加(realloc)。

静态变量和静态分配内存 是两个无关的事情。
静态变量 是 static 变量, 生命期与程序一样,相当于全局量。特别是在函数里的 static 变量,一般变量,退出函数时就没了,static 变量还存在,上次赋的值还在。
动态变量 -- 没有“动态变量”。追问

动态内存什么时候才会释放?

追答

动态分配的内存释放,同分配方法有关。一般用函数 free.
有些要用 类里的 Delete 函数,例如 DeleteObject(font);
程序正常结束,也会自己释放。
程序非正常结束,例如 遇函数 abort(); 就不释放。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-19
静态存储区 主要区别是什么?②动态存储区
相似回答