C++怎么定义一个动态二维数组

2024-11-22 08:09:18
推荐回答(5个)
回答(1):

#include

#include

#include

#defineRANK10

#defineCOLUMN7

intmain()

{

inti,j;

int(*p)[COLUMN];

//动态生成二维数组,指定列数为COLUMN,如果想改,可以进行修改

//的参数,如果想定义n行2列就为:p=(int(*)[2])malloc(n*2*sizeof(int));

p=(int(*)[COLUMN])malloc(RANK*COLUMN*sizeof(int));//动态申请n行COLUMN列的二维数组

for(i=0;i

for(j=0;j

p[i][j]=i*j;

for(i=0;i

{

for(j=0;j

printf("%d,",p[i][j]);

printf("\n");

}

free(p);

system("pause");

return0;

}

扩展资料

定义一个三维数组:

intx[3][4][5];

定义了一个三维数组,数组的名字是x,数组的长度为3,每个数组的元素又是一个二维数组,这个二维数组的长度是4。

并且这个二维数组中的每个元素又是一个一维数组,这个一维数组的长度是5,元素类型是int。多维数组在实际的工作中使用不多,并且使用方法与二维数组相似。

回答(2):


回答(3):

用new申请空间;
再在对每个数进行初始化;
//动态定义和初始化二维数组 部分代码
cout<<"输入二维数组的行,列 :";
cin>>row >>col ;
int **p2 ;
p2 = new int*[row] ;
for( i = 0 ; i < row ; i ++ )
p2[i] = new int[col] ;
//输入二维数组的值
for( i = 0 ; i < row ; i ++ )
for( j = 0 ; j < col ; j ++ )
p2[i][j] = rand() % 10 ;
//输出二维数组
cout<<"输出二位数组:"<for( i = 0 ; i < row ; i ++ )
{
for( j = 0 ;j < col ; j ++ )
cout< cout<}
//释放二维数组
for( i = 0 ; i < row ; i ++ )
delete []p2[i] ;
delete []p2 ;

回答(4):

#include
typedef vector > matrix;
这样matrix就是二维数组了,可以用push_back()动态往里面添加元素 ,不用预先定义数组大小

回答(5):

int row, col;
cin >> row >> col;
int** ptr = new int* [row];
for(int i=0; i {
ptr[i] = new int [col];
}
//使用之后一定要记得释放内存
for(int j=0; j {
delete [] ptr[j];
}
delete [] ptr;