首页 > 系统相关 >[C++] C++中关于内存的初解

[C++] C++中关于内存的初解

时间:2022-12-27 13:13:18浏览次数:45  
标签:释放 操作系统 代码 C++ 内存 初解 常量

内存四区

1. 代码区

存放函数体的二进制代码,由操作系统进行管理。

代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码就可以。

代码是只读的,只读的原因是防止程序意外修改它的指令

 

2. 全局区

用于存放全局变量和静态变量,以及常量(常量区,字符串常量和其他常量)

该区域的数据在程序结束后由操作系统释放

 

3. 栈区

由编译器自动分配释放,存放函数的参数值,局部变量等

注意事项:不要返回局部变量的地址,栈区开辟的数据由编译器自动释放

 

4. 堆区

由程序员进行管理和释放。程序结束时被操作系统回收。(new 关键字)

标签:释放,操作系统,代码,C++,内存,初解,常量
From: https://www.cnblogs.com/lengblog/p/17007842.html

相关文章

  • 操作系统 内存碎片 cache替换算法 虚拟地址逻辑地址线性地址物理地址
    采用分区式存储管理的系统,在储存分配过程中产生的、不能供用户作业使用的主存里的小分区称成“内存碎片”。内存碎片分为内部碎片和外部碎片。内部碎片内部碎片就是已经被分......
  • 学习下Redis内存模型
    作者:京东零售吴佳前言redis,对于一个java开发工程师来讲,其实算不得什么复杂新奇的技术,但可能也很少人去深入了解学习它的底层的一些东西。下面将通过对内存统计、内存划......
  • 【cocos2d-x从c++到js】注册函数
    前面的文章中讲过,在游戏启动时,会调用大量的addRegisterCallback函数,向SpiderMonkey注册Cocos2d-x引擎的函数。​​ScriptingCore*sc=ScriptingCore::getInsta......
  • C++11 新特性之Range-based for loops
    声明:本文少量代码转载自AlexAllain的文章 ​​http://www.cprogramming.com/c++11/c++11-ranged-for-loop.html​​很多语言都有Range-basedforloops这个功能,现在C++......
  • 学习下Redis内存模型
    作者:京东零售吴佳前言redis,对于一个java开发工程师来讲,其实算不得什么复杂新奇的技术,但可能也很少人去深入了解学习它的底层的一些东西。下面将通过对内存统计、内存划分、......
  • C++11:列表初始化
    在C++98/03中,对象初始化方法有很多种,如下代码所示://初始化列表inti_arr[3]={1,2,3};//普通数组structA{intx;structB{inti;......
  • C++和Objective-C混编(官方文档翻译)
    UsingC++WithObjective-C  苹果的Objective-C编译器允许用户在同一个源文件里自由地混合使用C++和Objective-C,混编后的语言叫Objective-C++......
  • C++——构造函数的使用注意事项及static用法
    1.构造函数1.构造函数赋值和初始化列表#include<iostream>usingnamespacestd;classdate{public:date(intyear=1,intmonth=1,intday=1){//函数体赋值......
  • C++——构造函数的使用注意事项及static用法
    1.构造函数1.构造函数赋值和初始化列表#include<iostream>usingnamespacestd;classdate{public:date(intyear=1,intmonth=1,intday=1){//函数体赋值......
  • C++——构造函数的使用注意事项及static用法
    1.构造函数1.构造函数赋值和初始化列表#include<iostream>usingnamespacestd;classdate{public:date(intyear=1,intmonth=1,intday=1){//函数体赋值......