首页 > 系统相关 >C++动态内存管理

C++动态内存管理

时间:2024-03-25 20:30:04浏览次数:20  
标签:释放 管理 int C++ free 动态内存 空间 new delete

目录

C/C++内存分配

C++内存管理

C++内存管理介绍

C++内存管理使用

C++内存管理基本语法

operator new 和 operator delete函数

定位new表达式(placement-new)

基本语法

使用场景

malloc/free和new/delete

相同点

不同点


C/C++内存分配

在C语言动态内存管理章节已经了解到内存的分类,包括下面四个区域:

  1. 栈又叫堆栈--非静态局部变量/函数参数/返回值等等,栈是向下增长的。
  2. 内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。
  3. 堆用于程序运行时动态内存分配,堆是可以上增长的。
  4. 数据段--存储全局数据和静态数据。
  5. 代码段--可执行的代码/只读常量
int globalVar = 1;
static int staticGlobalVar = 1;
void Test()
{
    static int staticVar = 1;
    int localVar = 1;
    int num1[10] = { 1, 2, 3, 4 };
    char char2[] = "abcd";
    const char* pChar3 = "abcd";
    int* ptr1 = (int*)malloc(sizeof(int) * 4);
    int* ptr2 = (int*)calloc(4, sizeof(int));
    int* ptr3 = (int*)realloc(ptr2, sizeof(int) * 4);
    free(ptr1);
    free(ptr3);
}

在上面代码中,globalVar为全局变量,与静态变量staticGlobalVarstaticGlobalVar,存放在数据段(静态区),num1char2均为局部数组,所以均放在内存的栈区。对于指针类型pChar3ptr1ptr2ptr3均为局部变量,所以均存放在栈区,但是pChar3指向的内容是字符串的第一个元素的地址,该地址在内存的代码段(常量区),其余三个指针均指向在内存堆区开辟的空间

标签:释放,管理,int,C++,free,动态内存,空间,new,delete
From: https://blog.csdn.net/m0_73281594/article/details/137024772

相关文章

  • Linux的目录结构和文件管理命令
    1.Linux以单根的形式组织文件(只有一个储存盘)/。 2.bin:普通用户的使用命令(命令文件)sbin:超级管理员使用的命令dev:设备文件(相当于外设文件鼠标,键盘等)root:超级管理员存放私人文件home:普通用户的宿主目录tmp:临时目录usr:自定义目录etc:编辑配置(相当于windows......
  • C++中用户自定义数据类型
    在C++中,用户自定义数据类型通常指的是通过struct、class、enum和typedef关键字定义的类型。这些自定义类型可以包含各种成员,包括基本数据类型、其他自定义类型、成员函数(对于class)、访问修饰符等。下面是这些自定义数据类型可以包含的组件的概述:结构体(struct)结构体是一种......
  • 【附源码】JAVA计算机毕业设计应急信息管理及统计分析系统(springboot+mysql+开题+论文
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在信息化时代,应急管理面临着前所未有的挑战和机遇。随着自然灾害、事故灾难等突发事件频发,对应急信息的管理和统计分析提出了更高要求。传统的信息管......
  • 【附源码】JAVA计算机毕业设计应急物资管理系统(springboot+mysql+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着自然灾害和突发事件的频发,应急物资管理的重要性日益凸显。传统的物资管理方式往往存在着信息不透明、响应速度慢、资源分配不均等问题,难以满足现......
  • 基于java中的springboot框架实现学生宿舍管理系统的设计与开发演示【附项目源码+论文
    基于springboot实现学生宿舍管理系统的设计与开发演示摘要互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对学生宿舍信息管理混乱,出错率高,信息安全性差,劳动强......
  • 基于java中的SpringBoot框架实现企业客户管理系统演示【附项目源码+论文说明】
    基于SpringBoot实现企业客户管理系统演示摘要本论文主要论述了如何使用JAVA语言开发一个企业客户管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述企业客户管理系统的当前背景以及系统开发的目的,后......
  • 基于java中的springboot框架实现学生宿舍管理系统的设计与开发演示【附项目源码+论文
    基于springboot实现学生宿舍管理系统的设计与开发演示摘要互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对学生宿舍信息管理混乱,出错率高,信息安全性差,劳动强......
  • 基于java中的SpringBoot框架实现企业客户管理系统演示【附项目源码+论文说明】
    基于SpringBoot实现企业客户管理系统演示摘要本论文主要论述了如何使用JAVA语言开发一个企业客户管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述企业客户管理系统的当前背景以及系统开发的目的,后......
  • 移动宽带光猫—获取超级管理员密码教程
    设备名称:吉比特无源光纤接入用户端设备(GPONONU)设备类型:中国移动智能家庭网关类型八设备型号:H5-8默认终端配置地址:192.168.1.1默认终端配置账号:user默认终端配置密码:************ 第一步、先用普通用户登录http://192.168.1.1输入账号:user输入密码:*******......
  • 【云能耗管理系统在某大型商场的应用】安科瑞Acrel-EIOT能源物联网平台方案
    摘要:依据对上海市某大型商场现场考察的结果,提出通过建设云能耗管理系统的方案来改善商场能耗的管理现状。首先充分搜集建筑信息和设备运行工况,合理设计系统实施方案,解决现场数据采集和传输障碍,完成云能耗管理系统的建设,成功实现云能耗管理系统的稳定运行,提高商场运营管理效率;......