博客
关于我
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/

    你可能感兴趣的文章
    nrm报错 [ERR_INVALID_ARG_TYPE]
    查看>>
    NS3 IP首部校验和
    查看>>
    NSDateFormatter的替代方法
    查看>>
    NSError 的使用方法
    查看>>
    NSGA-Ⅲ源代码
    查看>>
    nsis 安装脚本示例(转)
    查看>>
    NSJSON的用法(oc系统自带的解析方法)
    查看>>
    nslookup 的基本知识与命令详解
    查看>>
    NSNumber与NSInteger的区别 -bei
    查看>>
    NSOperation基本操作
    查看>>
    NSRange 范围
    查看>>
    NSSet集合 无序的 不能重复的
    查看>>
    NSURLSession下载和断点续传
    查看>>
    NSUserdefault读书笔记
    查看>>
    NS图绘制工具推荐
    查看>>
    NT AUTHORITY\NETWORK SERVICE 权限问题
    查看>>
    NT symbols are incorrect, please fix symbols
    查看>>
    ntelliJ IDEA 报错:找不到包或者找不到符号
    查看>>
    NTFS文件权限管理实战
    查看>>
    ntko web firefox跨浏览器插件_深度比较:2019年6个最好的跨浏览器测试工具
    查看>>