内存分配分为三种:静态、栈区、堆区

来源:互联网 发布:室内设计软件培训 编辑:程序博客网 时间:2024/05/20 22:40
  1. 总述
    内存分配分为三种:静态、栈区、堆区
  2. 分别解释
    (1)静态存储区:主要存放static静态变量、全局变量、常量。这些数据内存在编译的时候就已经为他们分配好了内存,生命周期是整个程序从运行到结束。
    (2)栈区:存放局部变量。在执行函数的时候(包括main这样的函数),函数内的局部变量的存储单元会在栈上创建,函数执行完自动释放,生命周期是从该函数的开始执行到结束。(例如,delay_ms(){ int a = 1000;//a就是一个局部变量 在栈区建立存储单元 delay_ms()执行完毕后自动释放 })
    (3)堆区:程序员自己申请一块任意大小的内存—也叫动态内存分配。这块内存会一直存在知道程序员释放掉。C语言中,用malloc or new动态地申请内存,用free or delete释放内存。良好习惯:若申请的动态内存不再使用,要及时释放掉,否则会造成内存泄露。
原创粉丝点击