• 《C++ Primer》笔记创建动态数组new,delete


    1.每一个程序在执行时都占用一块可用的内存空间,用于存放动态分配的对 象,此内存空间称为程序的自由存储区或堆。C 语言程序使用一对标准库函数 

    malloc 和 free 在自由存储区中分配存储空间,而 C++ 语言则使用 new 和 delete 表达式实现相同的功能。 

    2.动态数组的定义 

    int *pia = new int[10]; // array of 10 uninitialized ints
    string *psa = new string[10]; // array of 10 empty strings 
    int *pia2 = new int[10] (); // array of 10 uninitialized ints
    int *pi = new int;  // pi points to dynamically allocated,
    
                             // unnamed, uninitialized int
    

    圆括号要求编译器对数组做值初始化,在本例中即把数组元素都设置为 0。

    对于动态分配的数组,其元素只能初始化为元素类型的默认值, 而不能像数组变量一样,用初始化列表为数组元素提供各不相 同的初值。 

    3.动态空间的释放 

    动态分配的内存最后必须进行释放,否则,内存最终将会逐渐耗尽。如果不 再需要使用动态创建的数组,程序员必须显式地将其占用的存储空间返还给程序 的自由存储区。C++ 语言为指针提供 delete [] 表达式释放指针所指向的数组 空间:

              delete [] pia;
    

    该语句回收了 pia 所指向的数组,把相应的内存返还给自由存储区。在关 键字 delete 和指针之间的空方括号对是必不可少的:它告诉编译器该指针指向 的是自由存储区中的数组,而并非单个对象。 

  • 相关阅读:
    npm,umi,yarn
    PHPStorm 快捷键, 到页面顶部和底部
    百度统计
    公共管理之重置密码
    ALT+J 多行编辑
    PHP,Excel导出换行
    art-template 弹出上传多图
    java mock
    mysql查找字符串出现位置
    Spring 依赖注入,在Main方法中取得Spring控制的实例
  • 原文地址:https://www.cnblogs.com/worldtraveler/p/2837333.html
Copyright © 2020-2023  润新知