博客
关于我
C++ 动态内存分配基础
阅读量:242 次
发布时间:2019-03-01

本文共 868 字,大约阅读时间需要 2 分钟。

新加入的内容主要围绕C++语言中的动态内存管理展开,以下是具体内容:

动态申请空间

在C++程序中,动态内存管理允许开发者根据需要灵活分配和释放内存资源。通过使用new操作符,可以向程序中申请内存空间,以支持对象的创建或数据结构的动态扩展。以下是几种常见的动态申请方式及其示例:

  • 单个对象的动态申请

    使用new操作符可以为一个特定对象分配内存:

    int *p = new int(200);

    这段代码申请了一个整数对象的内存空间,并将其存储在指针p中。随后可以使用delete操作符释放该内存:

    delete p;
  • 字符串对象的动态申请

    对于字符串对象,可以使用new操作符分配特定长度的内存:

    string *ps = new string("purple paplace");

    申请完成后,可以通过delete操作符释放字符串对象的内存:

    delete ps;
  • 结构体对象的动态申请

    结构体也是可以通过new操作符动态申请内存的:

    struct Stu {      int age;      string name;  };  Stu *pStu = new Stu{10, "bob"};

    申请完成后,使用delete操作符释放该指针所指的内存:

    delete pStu;
  • 数组的动态申请

    使用new[]操作符可以申请数组的内存。例如,申请一个大小为5的整数数组:

    int *pi = new int[5];

    使用delete[]操作符释放该数组:

    delete[] pi;
  • 多维数组的动态申请

    对于多维数组,可以使用嵌套的new[]操作符分配内存。例如,申请一个大小为2、3、4的三维数组:

    int(*pa)[3][4][5] = new int[2][3][4][5];

    使用delete[]操作符释放该数组:

    delete[] pa;
  • 需要注意的是,动态申请内存后必须及时释放,以避免内存泄漏。C++提供了deletedelete[]操作符,以及智能指针(unique_ptrshared_ptr等)来简化内存管理。

    转载地址:http://xmhv.baihongyu.com/

    你可能感兴趣的文章
    PyQt5 - QThread:在线程仍在运行时被销毁
    查看>>
    PyQt5 - 如何从工作线程发出信号以通过 GUI 线程调用事件
    查看>>
    PyQt5 Designer 不工作:此应用程序无法启动,因为无法初始化 Qt 平台插件
    查看>>
    PyQt5 QLCNumber 没有更新
    查看>>
    PyQt5 TabWidget选项卡BarClicked TypeError:本机Qt信号不可调用
    查看>>
    PyQt5 从 PyQt4 转换信号代码
    查看>>
    PyQt5 和 asyncio:从永不完成的收益
    查看>>
    PyQt5 和 Django:如何使用 HTTP 请求(Multipart-form)上传图像?
    查看>>
    PyQt5 按钮运行功能和更新 LCD
    查看>>
    pyqt5 获取Qlabel中的图片并对其进行处理(包括Qimage转换为Mat)
    查看>>
    pyqt5 设置控件在最上层或者在下层
    查看>>
    pyqt5 设置网格布局的间距
    查看>>
    pyTorch Hub 系列#4:PGAN — GAN 模型
    查看>>
    PyQt5-基本窗口控件-QMainWindow
    查看>>
    PyQt5:如何安装/运行 Qt 设计器
    查看>>
    PyQt5——pyqtgraph绘图大招
    查看>>
    PyQt5——多窗口之间数据处理
    查看>>
    PyQt5——多线程、信号与槽
    查看>>
    PyQt5——开发地图软件
    查看>>
    PyQt5——装饰器信号与槽
    查看>>