zoukankan      html  css  js  c++  java
  • [002]动态数组

    1.动态数组的定义

    int* pInt = new int[10];

     此 new 表达式分配了一个含有 10 个 int 型元素的数组,并返回指向该数组第一个元素的指针,此返回值初始化了指针 pInt;

    2.动态数组的初始化

       上面的例子中,定义的数组是没有经过初始化的,其初始化的方式跟数组类似。

       ①如果是类类型,那么不用显式的对它进行初始化,程序会默认调用类的构造函数为其进行初始化。

    string* pStr = new string[10];

       ②如果是默认类型,则可以通过下面的方式进行初始化。

    int* pInt = new int[10]();

     ③const动态数组必须初始化。

    const int* pInt = new const int[10];

    3.注意事项

      a.C++ 虽然不允许定义长度为 0 的数组变量,但明确指出,调用 new 动态创建长度为 0 的数组是合法的:

    char arr[0];                   // error: cannot define zero-length  
    array  char *cp = new char[0]; // ok: but cp can't be dereferenced  

      b.动态数组的释放

    delete [] pInt;

      注:方括号对必须添加,如果不添加,编译器是不会报错的,理论上会产生内存泄露。

  • 相关阅读:
    python 单下划线/双下划线使用总结
    error connection reset by peer 104
    变形课
    求并联电阻值
    HDU2054:A == B ?
    Do the Untwist
    开门人和关门人
    关于HEXO安装失败的解决方法
    代码高亮显示——google-code-prettify
    网站图标——favicon
  • 原文地址:https://www.cnblogs.com/hustcser/p/3626036.html
Copyright © 2011-2022 走看看