w*******e 发帖数: 285 | 1 我的理解是function内部的变量都进stack,普通function执行完了就被清除,静态函数
的变量一直在stack里面直到程序终结。heap是放静态变量和全局变量的地方,动态分
配的内存也放在stack当中,如果不release就会有泄漏,直到程序终结。
请问这是对的吗? | w***g 发帖数: 5958 | 2 不知道静态变量和全局变量的地方是不是叫heap,但是静态变量和全局变量大小固定,
不存在内存管理问题。也可以理解这些固定的东西在heap底部。动态分配的内存是放在
heap中的。
【在 w*******e 的大作中提到】 : 我的理解是function内部的变量都进stack,普通function执行完了就被清除,静态函数 : 的变量一直在stack里面直到程序终结。heap是放静态变量和全局变量的地方,动态分 : 配的内存也放在stack当中,如果不release就会有泄漏,直到程序终结。 : 请问这是对的吗?
| f*******y 发帖数: 988 | 3 说C/C++么 ?
function内部的local在stack上,执行完就清除
普通花括号括起来的也是
不初始化
static和global在BSS上,初始化为0
常量和literal在数据段上
动态的一般在heap上,是否初始化取决你的方法
动态也有在stack上的(alloca)
不适用于JAVA和.NET
【在 w*******e 的大作中提到】 : 我的理解是function内部的变量都进stack,普通function执行完了就被清除,静态函数 : 的变量一直在stack里面直到程序终结。heap是放静态变量和全局变量的地方,动态分 : 配的内存也放在stack当中,如果不release就会有泄漏,直到程序终结。 : 请问这是对的吗?
|
|