电影分享网站源码,精品成品网站源码,wordpress搜索中文插件,做会计要关注什么网站int **p; p new int*[10]; //注意#xff0c;int*[10]表示一个有10个元素的指针数组 for (int i 0; i ! 10; i) { p[i] new int[5]; } 这里是将p作为一个指向指针的指针#xff0c;它指向一个包含10个元素的指针数组#xff0c;并且每个元素指向一个有5个元素的数… int **p; p new int*[10]; //注意int*[10]表示一个有10个元素的指针数组 for (int i 0; i ! 10; i) { p[i] new int[5]; } 这里是将p作为一个指向指针的指针它指向一个包含10个元素的指针数组并且每个元素指向一个有5个元素的数组这样就构建了一个10行5列的数组。 当数组使用完毕释放空间的代码是 for(int i 0; i ! 5; i) { delete[] p[i]; } delete[] p; 处理二维数组可以用降维或是二维法。 降维法是用一位数组来接受二维数组将二维元素的首地址a[0][0]作为参数传递给函数函数用int *接受。 二维法就直接用二维数组来接受但是需要指定列数。 如要想创建一个[m][n]的二维数组。 下面为通过动态创建一个指针数组的方法来动态创建二维数组的方法。 C版本 double **data; data (double **)malloc(m*sizeof(double *)); for(int j0;jm;j) { data[j] (double*)malloc(n*sizeof(double)); //这个指针数组的每个指针元素又指向一个数组。 } for (int i0;im;i) { for (int j0;jn;j) { data[i][j]i*nj;//初始化数组元素 } } for (i0;im;i) { free(data[i]); //先撤销指针元素所指向的数组 } free(data); C版本 double **data; data new double*[m]; //设置行 或直接double **datanew double*[m]; 一个指针指向一个指针数组。 for(int j0;jm;j) { data[j] new double[n]; //这个指针数组的每个指针元素又指向一个数组。 } for (int i0;im;i) { for (int j0;jn;j) { data[i][j]i*nj;//初始化数组元素 } } for (i0;im;i) { delete[] data[i]; //先撤销指针元素所指向的数组 } delete[] data; 这种方法是通过先动态创建一个指针数组然后为指针数组的每个元素再动态指向一个数组的办法来完成的。其创建过程与销毁过程两样重要。 在销毁的过程先销毁指针数组每个元素指向的数组然后再销毁这个指针数组。