昨天看了July网站上邹博的关于LCS的视频,讲的比较清晰,昨天晚上想自己写代码实现以下,结果发现卡在了如何定义一个二维数组,这个二维数组的大小是根据字符串的大小定义的,这就需要如何在程序中动态的申请一个二维数组,最近脑子不太好使,容易犯浑,不知道怎么写了,上网查了,还有人认真的写过如果在程序中创建二维数组。
以前写过一个迷宫游戏的程序,里面就是自己申请的二维数组,正好用上。
我在迷宫游戏中申请的二维数组
数组名就是指针,二维数组就是二维指针,先从二维开始,申请一个指针数组,然后为每一个元素(元素就是指针)申请一个数组。代码如下:1
2
3
4int **c;
c = new int *[len1]; // 申请一个指针数组
for(int i =0;i<len1;++i) // 为每一个指针再申请一个数组
c[i] = new int[len2];
简单的测试一下:1
2
3
4
5
6
7
8
9
10for(int i =0;i<len1;++i)
for(int j=0;j<len2;++j)
c[i][j] = str2[j];
for(int i =0;i<len1;++i)
{
for(int j = 0;j<len2;++j)
cout<<c[i][j]<<" ";
cout<<endl;
}
释放空间呢?我是逐一删除的1
2
3for(int i=0;i<len1;++i)
delete []c[i];
delete []c;
一篇关于动态创建二维数组的文章
最后附上我的迷宫程序
1 | #include<stdio.h> |