当前位置:首页 > 内存 > 正文

内存中的栈堆和静态区

  • 内存
  • 2024-06-15 11:51:40
  • 2757

一、C或C++程序编译时内存分为几个存储区在C++中,内存分为5个区域:堆、堆栈、空闲内存区域、全局/静态内存区域和常量内存区域。
1堆栈是编译器分配的内存区域,变量在使用时会自动删除。不再需要成为。它包含的变量通常是局部变量、函数参数等。
2.堆是new分配的内存。编译器不关心释放它们。一般来说,一个new对应一个delete操作。如果程序员不释放它,操作系统会在程序结束后自动重用它。
3.空闲内存区是由malloc等分配的内存块。它与堆非常相似,但使用空闲内存区域来结束其生命周期。
4.全局/静态内存区,全局变量和静态变量分配到同一块内存。以前的C语言中,同一个内存区域之间是没有这种区分的。
5.常量存储区,这是一个比较特殊的存储区。它们存储常量并且不允许更改(当然您可以使用非法手段更改它们)。
二、编程中内存分为四个区

我在某知名软件公司上课程时,老师解释说,编程过程中使用的内存就是堆区。堆栈区分为四类:静态区和代码区。
📦堆区
堆区:使用过程中动态使用的内存区域,如C/C++语言中使用的动态分配的内存区域。使用完后,程序员必须使用free()/delete来释放这块内存空间;否则会出现内存泄漏,导致程序运行后出错。
📚栈区
栈区:程序运行时,程序员不必释放它。退出程序时会保存本地数据和临时更改。
📊静态区
静态区:静态变量(例如staticinta,是一个静态变量,存储在这个区域中。)和全局变量(特别注意全局因素,变量有存放在静态区。)
💻代码区:保存程序代码。
💻内存使用的重要性
执行后你就会发现它有多么重要。所以掌握这部分就好了