c++ 动态数组

来源:互联网 发布:php实例源码下载 编辑:程序博客网 时间:2024/06/05 06:53

这学期学C++  ,晚上有道编程题, 比较坑, 感觉要用动态数组做, 但实际就是要用静态数组, 因为动态的反而更难了。 

用动态数组的时候,发现自己只会创建一维的 int *a = new int[5] ;   然后二维数组怎么创都忘记了, 还是那句话 ,不写代码很容易

  忘记。 然后下面就给出几个例子吧

[cpp] view plaincopy
  1. <span style="white-space:pre">    </span>int **p = new int*[i];  
  2.       
[cpp] view plaincopy
  1. <span style="white-space:pre">    </span>for (int k = 0; k < i ; k++)  
  2.     {  
  3.   
  4.         p[k] = new int[j];  
  5.     }  
[cpp] view plaincopy
  1.   

当然创建方式不止是这么一种 。 另外有一点要强调, 有几个new 就要调用几个delete , 不然会造成内存泄露, 然后多为数组还要delete[].............


还有一点想说的是编程过程的一些问题吧 

  1. 首先是数组的指针表达式   *(*(p+i)+j)   今天居然有同学问我这个怎么写,我也是无语了,感觉这个事必须掌握的啊 
  2.        int **qw = new int[12][23];   这个提示错误

    "int(*)[23]"类型的值不能用于初始化" int * *"类型的实例 ;  很显然是类型不匹配,所以new 不了来了  实际改法也很简单, 就是int (*p)[23] = new int [12][23] ; 

3 还有一点是在传参数的时候, 二维数组可以**p 做形参, 也可是(*p)[23] 这种格式  




C++ 中动态数组还是很有用的, 特别是在类当中, 深拷贝这类的 ,还是很值得学习的。

0 0
原创粉丝点击