# 结构体二维数组
## 问题提出:假设现在我们要进行一个随机迷宫设计;
要求:①迷宫随机产生;
②迷宫各个单元相互连通但又不至于所有房间之间的墙全部去除。
### 注意:在开始解决这个问题之初,我们应该考虑如果我们要使用结构体来对单个迷宫单元进行属性划分;那么,我们就需要使用二维结构体数组(表示迷宫矩阵);
在这里,我将举个例子对二维的结构体数组初始化方法给大家做个示范,希望能对有需要的朋友有帮助,同时也期待有大佬能多多指教指教....
以下是代码:
//先写一个结构体
struct maze {
int x; //迷宫单元横坐标;
int y; //迷宫单元纵坐标;
int direction[4] = { 0 }; //当前迷宫的方向数组
...
...
... //其他信息
};
//接下来, 我将实现结构体二维数组;
int width = 10;
int height = 10;
//cin >> width >> height; //也可输入长、宽
//int * pt = new int[n]; //一般指针均可这样声明(其实这种就相当于一个一维数组)
//下面是嵌套申明二维数组数组(注:里面的width&height须为常量,不然编译器可能报错...)
maze** m = new maze *[width];
for (int i = 0; i < width; i++) {
m[i] = new maze[height];
}
大家可以看见,“m” 这个结构体对象实际上是一个二维数组,那么,我们分配内存的时候,就需要对他进行嵌套分配空间。
以上就是我的一些分享,菜鸟猿?不喜勿喷哈各位。
加油!!!