结构体的二维数组实现

优快云@[TOC]

# 结构体二维数组
## 问题提出:假设现在我们要进行一个随机迷宫设计;
要求:①迷宫随机产生;
②迷宫各个单元相互连通但又不至于所有房间之间的墙全部去除。

 


### 注意:在开始解决这个问题之初,我们应该考虑如果我们要使用结构体来对单个迷宫单元进行属性划分;那么,我们就需要使用二维结构体数组(表示迷宫矩阵);


在这里,我将举个例子对二维的结构体数组初始化方法给大家做个示范,希望能对有需要的朋友有帮助,同时也期待有大佬能多多指教指教....

以下是代码: 

 


//先写一个结构体


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” 这个结构体对象实际上是一个二维数组,那么,我们分配内存的时候,就需要对他进行嵌套分配空间。

 

 以上就是我的一些分享,菜鸟猿?不喜勿喷哈各位。
  加油!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值