同学们,C++动态开辟二维数组,怎么开。
int **arr
arr=new int*[row];
for(int i=0;i<row;i++)
{arr[i]=new int[col];}
这错哪里了。
[解决办法]
int **arrarr=new int*[row];//arr=(int *)malloc(row*sizeof(int));for(int i=0;i<row;i++){//arr[i]=new int[col];arr[i]=(int *)malloc(row*sizeof(col));}
[解决办法]
int **arr//arr=new int*[row];arr=(int *)malloc(row*sizeof(int));for(int i=0;i<row;i++){//arr[i]=new int[col];arr[i]=(int *)malloc(row*sizeof(col));}
[解决办法]
什么编译器?这个有错么?
[解决办法]
int (*p)[m]=new int[n][m];
[解决办法]
楼上虽说是二维数组,但是只动态了一个维度。
正确做法是:
int **array2D = new int*[m];array2D[0] = new int[m*n];for( i = 1; i < m; i++ ) array2D[i] = array2D[i-1] + n;
[解决办法]
这貌似是C方式,没有体现出C++的特色啊
建一个类,重载operator [] 可以吗?
[解决办法]
[code=C/C++][/code]
int **arr = NULL;
*arr=new int[row];
for(int i=0;i<row;i++)
{
arr[i]=new int[col];
}
第一次是给*arr分配内存,*arr可以看作是int* 指针,它指向一个int* 数组,这个数组有row个元素;
第二次是给row个元素(指针)分配内存。
[解决办法]
开辟m * n的二维数组
int **a = new int*[m] ;
for(int i = 0; i < m; i++)
{
a[i] = new int[n] ;
}