美文网首页
堆 / 栈 / 自由存储区 / 静态存储区 / 常量存储区

堆 / 栈 / 自由存储区 / 静态存储区 / 常量存储区

作者: 棒棒0_0 | 来源:发表于2018-07-20 10:00 被阅读0次

在C++中, 内存分成5个区,分别是堆,栈,自由存储区,静态存储区,常量存储区。

栈:
编译器在需要的时候分配,在不需要的时候自动清除。里面的变量通常是局部变量或者函数参数。
堆:
由new分配的内存块,编译器并不关心它们的释放,由我们的应用程序去控制。如果我们没有释放掉,那么在程序结束后,系统会自动回收。
自由存储区:
由malloc分配的内存块,和堆非常相似,不过它用free来释放。
静态存储区:
全局变量和静态变量分配到静态存储区,在C语言中,全局变量又分为初始化的和未初始化的,在C++里面就没有这种区分,他们共同占用同一块内存。
常量存储区:
他们里面存放的是常量,不允许修改

int a = 0;                //静态存储区 
char *p1;                 //静态存储区 
void main()
{
   int b;                //栈 
   char s[] = "abc";     //栈 
   char *p2;             //栈 
   char *p3 = "123456";  //123456:常量存储区,p3:栈 
   static int c = 0;     //静态存储区 
   p1 = new char[10];    //堆
   p1 = "123456";        //123456:常量存储区,编译器将p1与p3所指向的"123456"优化成同一个地方
}

相关文章

  • C++内存分配需要注意的地方

    1、C++中,内存分为:堆、栈、自由存储区、全局/静态存储区、常量存储区 2、防止出错 【规则1】用malloc或...

  • C++内存管理

    简介 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈:在执行函数时,函...

  • 【GeekBand】C++笔记(3)

    在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,在执行函数时,函数内...

  • C++内存管理

    1、内存分配方式 在C++中,内存分为5个区,分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 堆:new...

  • 堆 / 栈 / 自由存储区 / 静态存储区 / 常量存储区

    在C++中, 内存分成5个区,分别是堆,栈,自由存储区,静态存储区,常量存储区。 栈:编译器在需要的时候分配,在不...

  • c++内存管理

    内存分配方式 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 在栈上创建...

  • 栈和堆的增长方向

    首先,在C++中,内存分为5个区域,分别是栈、堆、自由存储区、全局/静态存储区和常量存储区。 图片引用http:/...

  • C 内存分区

    在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需...

  • Block 有三种类型

    内存五大内存分区-----堆、栈、自由存储区、全局/静态存储区和常量存储区.1. 堆,就是那些由new分配的内存块...

  • C++ 内存五大分区

    C/C++中内存分5大区:栈,堆,全局/静态存储区,常量存储区,代码区(也称自由存储区)。 代码区:毫无疑问是用来...

网友评论

      本文标题:堆 / 栈 / 自由存储区 / 静态存储区 / 常量存储区

      本文链接:https://www.haomeiwen.com/subject/uhlfmftx.html