动态定义二维数组的方法

原创 2013年12月05日 17:02:31

建立动态二维数组的函数

void create2Darray(T **&x,int row,int col)
{

	//建立一个一维数组,用于保存每行的首指针 
	x = new T *[row];

	//为每一行的首指针分配col列数据
	for(int i=0;i<row;i++)
		x[i] = new T [col]; 
}


释放动态二维数组的函数

void delete2Darray(T **&x,int row)
{
	//通过每行的首指针释放每行的数据
	for(int i=0;i<row;i++)
		delete [] x[i];
	
	//释放用于指向每行的首指针
	delete [] x; 
}

一个示例程序:

#include<iostream>
using namespace std;
template <class T>
void create2Darray(T **&x,int row,int col)
{

	//建立一个一维数组,用于保存每行的首指针 
	x = new T *[row];

	//为每一行的首指针分配col列数据
	for(int i=0;i<row;i++)
		x[i] = new T [col]; 
}
template <class T>
void delete2Darray(T **&x,int row)
{
	//通过每行的首指针释放每行的数据
	for(int i=0;i<row;i++)
		delete [] x[i];
	
	//释放用于指向每行的首指针
	delete [] x; 
}
int main()
{
	char ** a;
	int row,col;
	cin>>row>>col;
	create2Darray(a,row,col);
	for(int i=0;i<row;i++)
	{
		for(int j=0;j<col;j++)
			cin>>a[i][j];
	}
	for(int i=0;i<row;i++)
	{
		for(int j=0;j<col;j++)
			cout<<a[i][j]<<" ";
		cout<<endl;
	}
	delete2Darray(a,row);
	return 0;
} 

示例数据:

3 4
q w e r
a s d f
z x c v
q w e r
a s d f
z x c v

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

关于Js的二维数组定义和方法

  • 2012年04月25日 17:27
  • 23KB
  • 下载

C++动态申请二维数组方法与应用

  • 2007年09月05日 15:29
  • 830B
  • 下载

C++中动态定义一维数组,二维数组,三维数组的方法

C语言中如何定义动态二维数组并输出

可以按照下面步骤进行定义二维数组并输出: 1 定义二维指针。 2 确定数组维数,即行数和列数。 3 申请行数个一维指针大小空间,并赋值给二维指针。 4 对于每个一维指,申请列数...
  • wbb1997
  • wbb1997
  • 2017年04月30日 17:31
  • 469

如何定义动态一维二维数组

首先,C++是不允许定义不确定数组的,但是,有时候我们并不确定所需要的数组的长度,我们所需要的数组的长度根据输入的不同而不同,所以,这时候定义一个动态长度的数组十分必要,但是,C++是不支持定义不确定...

二维数组定义以及动态分配空间

下面三种定义形式怎么理解?怎么动态分配空间? (1)、int **Ptr; (2)、int *Ptr[ 5 ]; 我更喜欢写成 int* Prt[5]; (3)、int ( *Ptr )[ 5 ];此...

二维数组定义以及动态分配空间 (转)

二维数组定义以及动态分配空间 (转) 下面三种定义形式怎么理解?怎么动态分配空间?  (1)、int **Ptr;  (2)、int *Ptr[ 5 ]; 我更喜欢写成 ...
  • wxinghu
  • wxinghu
  • 2012年06月01日 09:57
  • 123

C/C++上二维数组的两种动态分配内存方法

最近在看一个程序的源代码的时候了解到了二维数组的动态分配空间以及释放的方法,在此记录。 一、二维数据的内存空间动态分配 二、二维数据的内存空间释放 三、完整代码...

C++创建动态二维数组的两种方法

今天给大家分享一下C++里创建动态数组的两种方法,第一种是用new来申请空间,第二种用vector(向量)模板来创建。下面分别给大家讲解一下思路。 MUSIC! 1、使用new来申请内存 我们用...

C++ 动态开辟二维数组的的方法

动态开辟二维数组,方法1:用new在堆上开辟;方法2:用vector开辟。    一:C++ new 法 #include #include using namespace...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动态定义二维数组的方法
举报原因:
原因补充:

(最多只允许输入30个字)