如何实现装有字符串的数组的动态分配空间

一般情况下,我们会这样声明一个已知长度(假设是10)的装有字符串的数组:

char* a[10];

但是我的Assignment里面有两个文件,数组的长度根据文件而定,所以我不能将长度定死,就想到了如何动态分配一个装有字符串的数组的长度,也就是用户输入二维数组的长度。

下面就是我实验的代码:

#include
using namespace std;
void main()
{
	int in;
	char way1[3];
	char way2[3];
	char way3[3];
	cin>>in;
	char** ways=new char*[in];
	for(int i=0;i<in;i++) {
		ways[i]=new char[3];
	}
	strcpy(way1,"111");
	strcpy(way2,"222");
	strcpy(way3,"333");
	ways[0]=way1;
	ways[1]=way2;
	ways[2]=way3;
	for(int i=0;i<in;i++) {
		cout<<ways[i];
	}
	system("pause");
}

这样,就成功的完成了二维数组第一个dimension的动态分配,黑体字部分要注意。

 

Tonitech版权所有 | 转载请注明出处: http://www.tonitech.com/34.html

发表评论