C++中的内存存储

操作方法

  • 01

    在C、C++中,通常可以把内存理解为4个分区:栈、堆、全局/静态存储区和常量存储区。下面我们分别简单地介绍一下各自的特点。 1)栈 通常是用于那些在编译期间就能确定存储大小的变量的存储区,用于在函数作用域内创建,在离开作用域后自动销毁的变量的存储区。通常是局部变量,函数参数等的存储区。他的存储空间是连续的,两个紧密挨着定义的局部变量,他们的存储空间也是紧挨着的。栈的大小是有限的,通常Visual C++编译器的默认栈的大小为1MB,所以不要定义int a[1000000]这样的超大数组。 2)堆 通常是用于那些在编译期间不能确定存储大小的变量的存储区,它的存储空间是不连续的,一般由malloc(或new)函数来分配内存块,并且需要用free(delete)函数释放内存。如果程序员没有释放掉,那么就会出现常说的内存泄漏问题。需要注意的是,两个紧挨着定义的指针变量,所指向的malloc出来的两块内存并不一定的是紧挨着的,所以会产生内存碎片。另外需要注意的一点是,堆的大小几乎不受限制,理论上每个程序最大可达4GB。 3)全局/静态存储区 和“栈”一样,通常是用于那些在编译期间就能确定存储大小的变量的存储区,但它用于的是在整个程序运行期间都可见的全局变量和静态变量。 4)常量存储区 和“全局/静态存储区”一样,通常是用于那些在编译期间就能确定存储大小的常量的存储区,并且在程序运行期间,存储区内的常量是全局可见的。这是一块比较特殊的存储去,他们里面存放的是常量,不允许被修改。 5)总结 根据上面的内容,分别将栈和堆、全局/静态存储区和常量存储区进行对比,结果如下。

(0)

相关推荐

  • PS软件中的内存ram不足不能存储如何解决

    今天给大家介绍一下PS软件中的内存ram不足不能存储的具体解决方法.1.首先打开电脑上的PS软件,进入主页面后,依次点击上方的"编辑"---"首选项"---&q ...

  • 安卓手机如何在sd卡和内存中切换默认存储位置

    安卓手机如何在sd卡和内存中切换默认存储位置 操作方法 01 打开手机界面之后 冲途中上部的红框位置向下拖动 02 然后在出现的界面中点击右上角的螺丝按钮 03 在接下来的界面中点击存储 04 接下来 ...

  • 在BIOS中优化内存的方法

    内存在电脑中的重要性和地位仅次于CPU,其品质的优劣对电脑性能有至关重要的影响。为充分发挥内存的潜能,必须在BIOS设置中对与内存有关的参数进行调整。下面针对稍老一点的支持Intel PentiumⅢ ...

  • CentOS下top和free命令查看系统中空闲内存的方法

    下面介绍使用top和free命令查看系统中空闲内存 所以你执行top命令看到的 [root@linuxzgf ~]# top Mem: 8174492k total, 7124268k used,并不 ...

  • 怎么设置酷我音乐中的下载存储位置

    酷我音乐时大家所喜爱的音乐播放器之一,它深受广大音乐爱好者的欢迎,可是,很多小伙伴还不知道怎么设置酷我音乐中的下载存储位置,今天,小编就来为大家分享解决问题的方法.具体如下:1. 首先,请大家在自己的 ...

  • 如何把手机中的软件存储进SD卡中

    如果我们手机中的内存不够用了,我们可以将软件存储在SD卡中,今天小编就告诉大家如何把手机中的软件存储进SD卡中.具体如下:1. 首先我们打开手机中的设置选项.2. 在设置界面中点击应用程序这个选项,3 ...

  • 手机中的联系人存储在手机还是SIM怎么查看

    大家以前使用的手机由于内存都很小,所以我们经常会把联系人存在SIM卡上,现在的手机功能更加强劲了,所以也有将联系人存储在手机上的.接下来小编就教大家怎么查看联系人的存储位置.具体如下:1. 首先我们打 ...

  • 华为荣耀手机中的内存不足如何快速清理

    我们的手机用的时间越长,里面的内存占用就越多,今天就跟大家介绍一下华为荣耀手机中的内存不足如何快速清理的具体操作步骤.1. 解锁手机后,找到桌面上的设置图标,打开.2. 进入设置页面,向上滑动屏幕,找 ...

  • 华为手机中的内存大小如何查看

    今天给大家介绍一下华为手机中的内存大小如何查看的具体操作步骤.1. 解锁手机后,找到桌面上的设置图标,打开.2. 在打开的设置页面,向上滑动屏幕,找到关于手机选项.3. 如图,在打开的关于本机页面,我 ...