函数局部变量所需存储空间分配

来源:互联网 发布:网络歌曲大赛 编辑:程序博客网 时间:2024/05/17 07:29

1.

    栈是系统根据变量大小自动分配空间的

    堆是你用new,malloc等手动分配空间的

2.

    栈内存区的地址是连续的,由系统控制速度较快而
    堆内存区的地址是不连续的,它是系统将空闲内存块链接起来的链表,

操作系统给程序运行的内存非了4个区域:
1 代码区:顾名思义就是存放运行的代码的
2 全局数据区: 存放全局数据和静态数据以及常量.
3 栈区 函数调用时的返回地址,参数压栈,局部变量,返回数据等都存放在栈区.
4 堆区,存放程序动态分配的内存(new,malloc等函数分配的)

栈内存是由系统自己分配和释放的,而堆内存要由程序员自己全全控制的,否则会出现内存泄露


csdn 讨论帖

http://bbs.csdn.net/topics/80165653