C++建立动态二维数组

Posted longshengguoji

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++建立动态二维数组相关的知识,希望对你有一定的参考价值。

C++建立动态二维数组主要有两种方法:

1.使用数组指针,分配一个指针数组,将其首地址保存在b中,然后再为指针数组的每个元素分配一个数组

              
           int **b=new int*[row];       //分配一个指针数组,将其首地址保存在b中                                                                for(i=0;i<row;i++)             //为指针数组的每个元素分配一个数组                b[i]=new int[col];
                   该方法定义的动态二维数组的释放需先释放指针数组的每个元素指向的数组,然后再释放该指针数组:            for(i=0;i<row;i++)
           
                 delete [col]b[i];
                 b[i]=NULL;
           
           delete [row]b;
           b=NULL;
int _tmain(int argc, _TCHAR* argv[])

	int row,column;
	cin>>row>>column;

	//方法一
	//申请空间
	int ** a = new int *[row];
	for(int i = 0;i < row;i++)
		a[i] = new int[column];

	//使用空间
	for(int j = 0;j < row;j++)
		for(int k = 0;k< column;k++)
			a[j][k] = rand()%100;

	for(int j = 0;j < row;j++)
	
		cout<<endl;
		for(int k = 0;k< column;k++)
		
			a[j][k] = rand()%100;
			cout<<a[j][k]<<"     ";
		
	
		
	//释放空间
	for(int i = 0;i < row;i++)
	
		delete a[i];
		a[i] = NULL;
	
	delete [row]a;
	a = NULL;	

	return 0;
	
运行结果:

2.利用vector

int _tmain(int argc, _TCHAR* argv[])

	int row,column;
	cin>>row>>column;

	//方法二
	//申请空间
	vector<vector<int> > a(row,vector<int>(column));
	

	//使用空间
	for(int j = 0;j < row;j++)
		for(int k = 0;k< column;k++)
			a[j][k] = rand()%100;

	for(int j = 0;j < row;j++)
	
		cout<<endl;
		for(int k = 0;k< column;k++)
		
			a[j][k] = rand()%100;
			cout<<a[j][k]<<"     ";
		
			
	
	return 0;
	


运行结果为:

以上是关于C++建立动态二维数组的主要内容,如果未能解决你的问题,请参考以下文章

利用c++中的vector创建动态二维数组

二维数组C++的动态分配

私有属性 C++ 上的动态二维数组

C++:使用迭代器构造一个二维动态分配的数组

C++中动态二维数组中的地址

需要有关 C++ 中二维数组的动态内存分配的帮助