当前位置: 首页 > news >正文

自由存储区内存的分配与释放

 1、堆的概念
通常定义变量(或对象),编译器在编译时都可以根据该变量(或对象)的类型知道所需内存空间的大小,从而系统在适当的时候为他们分配确定的存储空间。这种内存分配称为静态存储分配

有些操作对象只在程序运行时才能确定,这样编译时就无法为他们预定存储空间,只能在程序运行时,系统根据要求进行内存分配,这种方法称为动态存储分配。所有动态存储分配都在堆区中进行。

 2、堆空间申请、释放的方法
在C++中,申请和释放堆中分配的存贮空间,分别使用new和delete的两个运算符来完成:
    指针变量名=new 类型名(初始化式);
    delete 指针名;

例如:
    int *pi=new int(0);
它与下列代码序列大体等价:
    int ival=0, *pi=&ival;
区别:pi所指向的变量是由库操作符new()分配的,位于程序的堆区中,并且该对象未命名。 2、堆空间申请、释放的方法
在C++中,申请和释放堆中分配的存贮空间,分别使用new和delete的两个运算符来完成:
    指针变量名=new 类型名(初始化式);
    delete 指针名;

例如:
    int *pi=new int(0);
它与下列代码序列大体等价:
    int ival=0, *pi=&ival;
区别:pi所指向的变量是由库操作符new()分配的,位于程序的堆区中,并且该对象未命名。

一定注意:delete []pc是将n个字符的空间释放,而用delete pc则只释放了一个字符的空间;

转载于:https://www.cnblogs.com/htys/p/3312424.html

相关文章:

  • Java程序设计10——与运行环境交互
  • hdu 1520(简单树形dp)
  • arcgis地图操作的资料URL,以供以后查阅
  • 根据中国气象局提供的API接口实现天气查询
  • ASP.NET图片验证码的实现
  • 版权声明
  • 2013 ACM/ICPC Asia Regional Chengdu Online---1003
  • Asp.net自定义控件开发任我行(3)-Render
  • Java中的Set,List,Map的区别
  • C#操作Excel开发报表系列整理(转)
  • C#中的XML文件操作(一)
  • [转]Magento 结构解析
  • APUE学习笔记之文件I/O(上)(3)
  • DEDE日期调用小插件
  • Sqlite数据库的加密
  • [case10]使用RSQL实现端到端的动态查询
  • “大数据应用场景”之隔壁老王(连载四)
  • 【技术性】Search知识
  • 345-反转字符串中的元音字母
  • Django 博客开发教程 16 - 统计文章阅读量
  • extjs4学习之配置
  • MD5加密原理解析及OC版原理实现
  • Redis学习笔记 - pipline(流水线、管道)
  • 从零开始在ubuntu上搭建node开发环境
  • 二维平面内的碰撞检测【一】
  • 简析gRPC client 连接管理
  • 将回调地狱按在地上摩擦的Promise
  • 前嗅ForeSpider中数据浏览界面介绍
  • 删除表内多余的重复数据
  • 微信小程序填坑清单
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 一个完整Java Web项目背后的密码
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​io --- 处理流的核心工具​
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #《AI中文版》V3 第 1 章 概述
  • $.ajax()
  • (12)Linux 常见的三种进程状态
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (TOJ2804)Even? Odd?
  • (vue)页面文件上传获取:action地址
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • .net 发送邮件
  • .NET/C# 的字符串暂存池
  • .NET6 命令行启动及发布单个Exe文件
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @SpringBootApplication 包含的三个注解及其含义
  • [Android] Android ActivityManager
  • [flask]http请求//获取请求体数据
  • [hdu 4552] 怪盗基德的挑战书