C程序的内存分布.pdfVIP

  • 1
  • 0
  • 约4.26千字
  • 约 5页
  • 2019-11-14 发布于湖北
  • 举报
C++ 中,内存分为 5 个区:堆、栈、自由存储区、全局 / 静态存储区和常量存储区。 栈:是由编译器在需要时自动分配,不需要时自动清除的变量存储区。通常存放局部变量、 函数参数等。 堆:是由 new 分配的内存块,由程序员释放(编译器不管) ,一般一个 new 与一个 delete 对应,一个 new[] 与一个 delete[] 对应。如果程序员没有释放掉,资源将由操作系统在程序 结束后自动回收。 自由存储区:是由 malloc 等分配的内存块,和堆十分相似,用 free 来释放。 全局 /静态存储区:全局变量和静态变量被分配到同一块内存中(在 C 语言中,全局变量又 分为初始化的和未初始化的, C++ 中没有这一区分) 。 常量存储区:这是一块特殊存储区,里边存放常量,不允许修改。 (注意:堆和自由存储区其实不过是同一块区域, new 底层实现代码中调用了 malloc , new 可以看成是 malloc 智能化的高级版本) 堆与栈的讨论: 管理方式: 堆中资源由程序员控制(

文档评论(0)

1亿VIP精品文档

相关文档