高程 | 数组、指针与字符串(c++)-????动态内存分配

时间:2024-02-16 14:13:33
  • 动态内存分配 (详解版)

????必要性

  • 数组可以对大量的数据和对象进行有效管理,但很多情况下,程序运行之前并不能确切知道数组中元素的个数。
  • 动态内存分配技术:保证程序在运行过程中按实际需要申请适量内存,且在使用结束后进行释放。

????new和delete

  • 动态申请内存操作符new
    • new 数据类型T(初始化参数列表)int * point = new int();
    • 功能:在程序执行期间,申请用于存放T类型变量/对象的内存空间,并依初值列表赋以初值。
    • 结果值:
      • 成功:T类型的指针,指向新分配的内存;
      • 失败:抛出异常。
  • 释放内存操作符delete
    • delete 指针p
    • 功能:释放指针p所指向的内存。p必须是new操作的返回值。
    • 注意:New分配的内存必须用delete加以释放。

????动态创建多维数组

  • new 类型名T[第1维长度][第2维长度]…;
  • 如果内存申请成功,new运算返回一个指向新分配内存首地址的指针,是一个T类型的数组,数组元素的个数为除最左边一维外各维下标表达式的乘积。
    在这里插入图片描述