关闭

动态定义二维数组的方法

1244人阅读 评论(0) 收藏 举报
分类:

建立动态二维数组的函数

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

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:575394次
    • 积分:8767
    • 等级:
    • 排名:第2169名
    • 原创:262篇
    • 转载:44篇
    • 译文:0篇
    • 评论:78条
    关于我

    电子邮箱:debby0116@163.com

    新浪微博:@丁棒儿

    知乎:@丁棒儿Debby

    github :github.com/stephania0116