热门标签 | HotTags
当前位置:  开发笔记 > IOS > 正文

c++动态内存分配相关总结

这篇文章主要介绍了c++动态内存分配相关的相关资料,帮助大家更好的理解和学习和使用c++,感兴趣的朋友可以了解下

  下面随笔是关于c++动态内存分配。

动态申请内存操作符 new

  • new 类型名T(初始化参数列表)
  • 功能:在程序执行期间,申请用于存放T类型对象的内存空间,并依初值列表赋以初值。
  • 结果值:成功:T类型的指针,指向新分配的内存;失败:抛出异常。

释放内存操作符delete

  • delete 指针p
  • 功能:释放指针p所指向的内存。p必须是new操作的返回值。
//例1 动态创建对象举例

#include 

using namespace std;

class Point {

public:

Point() : x(0), y(0) {

  cout<<"Default Constructor called."<
运行结果:

Step One:

Default Constructor called.

Destructor called.

Step Two:

Constructor called.

Destructor called.

分配和释放动态数组

  • 分配:new 类型名T [ 数组长度 ]

数组长度可以是任何表达式,在运行时计算

  • 释放:delete[] 数组名p

释放指针p所指向的数组。
p必须是用new分配得到的数组首地址。

//例2 动态创建对象数组举例

#include

using namespace std;

class Point { //类的声明同例6-16,略 };

int main() {

  Point *ptr = new Point[2]; //创建对象数组

  ptr[0].move(5, 10); //通过指针访问数组元素的成员

  ptr[1].move(15, 20); //通过指针访问数组元素的成员

  cout <<"Deleting..." <
运行结果:

Default Constructor called.

Default Constructor called.

Deleting...

Destructor called.

Destructor called.

动态创建多维数组

new 类型名T[第1维长度][第2维长度]…;

如果内存申请成功,new运算返回一个指向新分配内存首地址的指针。

  例如:

  char (*fp)[3];

  fp = new char[2][3];

//例3 动态创建多维数组

#include 

using namespace std;

int main() {

  int (*cp)[9][8] = new int[7][9][8];

  for (int i = 0; i <7; i++)

    for (int j = 0; j <9; j++)

      for (int k = 0; k <8; k++)

        *(*(*(cp + i) + j) + k) =(i * 100 + j * 10 + k);

  for (int i = 0; i <7; i++) {

    for (int j = 0; j <9; j++) {

      for (int k = 0; k <8; k++)

        cout <

以上就是c++ 动态内存分配相关总结的详细内容,更多关于c++ 动态内存分配的资料请关注其它相关文章!


推荐阅读
  • 本文介绍了iOS应用开发的主要框架,包括Foundation、UIKit、CoreData及CoreGraphics等,并探讨了开发iOS应用所需的硬件和软件环境,以及推荐的编程语言。 ... [详细]
  • POJ2226 二分图最小覆盖问题
    在一个大小为n×m的网格中,部分单元格为泥泞状态,其余为干净。目标是使用宽度固定为1但长度可变的木板覆盖所有泥泞单元格,且不覆盖任何干净单元格。木板允许重叠。本问题通过构建二分图并求其最小覆盖来解决。 ... [详细]
  • 深入理解SAP Fiori及其核心概念
    本文详细介绍了SAP Fiori的基本概念、发展历程、核心特性、应用类型、运行环境以及开发工具等,旨在帮助读者全面了解SAP Fiori的技术框架和应用场景。 ... [详细]
  • 近期在维护旧项目时遇到一个问题,在iOS8环境下,UILabel无法正常显示文本。通过深入分析,我们发现这一现象与UILabel的使用方式有关,特别是在嵌套UILabel的情况下。 ... [详细]
  • 本文总结了在使用React Native开发过程中遇到的一些常见问题及其解决方法,包括配置错误、依赖问题和特定组件的使用技巧。 ... [详细]
  • 探讨如何在C++中,当子类实例存储在父类类型的向量中时,正确访问子类特有的成员变量或方法。 ... [详细]
  • 通过调整BIOS设置,用户不仅能够更换主板的启动LOGO,还能自定义系统启动时的自检信息及CMOS设置界面,实现更加个性化的电脑启动体验。 ... [详细]
  • 如何阻止iOS14下载的应用同步至其他苹果设备
    对于同时使用多台苹果设备(如iPhone和iPad)的用户而言,可能会遇到在一个设备上下载的应用自动同步到其他设备的情况。如果您希望避免这种自动同步,以节省存储空间或减少不必要的应用同步,下面的方法或许能帮助您。 ... [详细]
  • 本文介绍了DOM中用于获取节点信息的关键属性,包括父节点、子节点列表、首个及末个子节点、相邻兄弟节点以及节点类型等,同时提供了每个属性的具体使用说明。 ... [详细]
  • 端到端自动化测试框架设计 - 以京东商品搜索为例的Web应用测试
    本文将对前文介绍的京东商品搜索功能的端到端自动化测试进行总结,涵盖使用WebStorm、Node.js、Mocha、WebDriverIO及Selenium构建的测试环境,并特别讨论了如何通过会话保持用户登录状态。 ... [详细]
  • 本文详细介绍了Java库中com.badlogic.gdx.scenes.scene2d.Stage类下的mouseMoved()方法,并提供了多个实际应用场景的代码示例,帮助开发者更好地理解和使用这一方法。 ... [详细]
  • 本文探讨了Flutter和Angular这两个流行框架的主要区别,包括它们的设计理念、适用场景及技术实现。 ... [详细]
  • 如何调整主板上的硬盘启动顺序
    本文详细介绍了两种方法来设置主板上的硬盘启动顺序,包括临时设置和永久设置的方法。 ... [详细]
  • 在现代移动应用开发中,尤其是iOS应用,处理来自服务器的JSON数据是一项基本技能。无论是使用Swift还是PHP,有效地解析和利用JSON数据对于提升用户体验至关重要。本文将探讨如何在Swift中优雅地处理JSON,以及PHP中处理JSON的一些技巧。 ... [详细]
  • 移动端浏览器为了识别用户的双击放大操作,通常会在点击后引入300毫秒的延迟。虽然这种延迟在日常使用中可能不易察觉,但对于需要即时响应的应用(如网页游戏)来说,消除这一延迟至关重要。 ... [详细]
author-avatar
n大牙
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有