C语言一个结构中有二维数组,我要对它初始化

#include<stdio.h>#defineMAXBOX19structBOARD//游戏底板结构{intvar;//0和1,表示该点是否被占用intcolor;//... #include <stdio.h>

#define MAXBOX 19
struct BOARD //游戏底板结构
{
int var; // 0和 1 ,表示 该点 是否被 占用
int color; //增强美观性
};
typedef struct SHAPE
{
int box[4][4]; //4 X 4 数组表示方块形状
int color; // 颜色
int next; //下一个(旋转后)方块编号
}SHAPE;

void Initshapes(SHAPE shapes[]); // 初始化方块形状

int main()
{
SHAPE shapes[MAXBOX];
Initshapes(shapes);
printf("%d\n",shapes[0].box[0][0]);
getchar();
return 0;
}
void Initshapes(SHAPE shapes[])
{
shapes[0].box={1,0,3,4,1,2,1,1,1,1,1,1,1,1,1,1};
shapes[0].color=1;
shapes[0].next=1;

}
我要在 函数中 对 19个 SHAPE 类型的数据进行初始化,怎么 初始化 里面 box[4][4]???如果用box[0][0]=0,box[0][1]=0,这样 是 没问题 就是 太慢了
展开
 我来答
xyzprb
2015-04-25 · TA获得超过133个赞
知道答主
回答量:139
采纳率:0%
帮助的人:71.5万
展开全部
只能在定义变量的时候初始化是比较方便的,过了那个村就没有那个店了。也就是只能一个一个定义了,当然如果有规律可循的就可以用memset和for循环的来做。但看你现在的需求明显是初始化为一个没规律的,那就只能一个一个赋值了。

初始化时定义可如下(我这里给出的是数组个数为2的例子,随便取的数值):
SHAPE shapes[2] = {{{1,0,3,4,1,2,1,1,1,1,1,1,1,1,1,1}, 6, 7},
{{1,5,3,4,1,2,2,2,2,2,2,2,2,2,2,2}, 8, 9}};
hell_mao
2015-04-25 · TA获得超过163个赞
知道小有建树答主
回答量:112
采纳率:0%
帮助的人:64.7万
展开全部
如何全部初始化为0 的话:
memset(box[0],0,4*4*sizeof(int));
如果初始化为其他固定的数,那就只能写一个函数,就像你写的一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
这个名有人取了
2015-04-25 · TA获得超过685个赞
知道小有建树答主
回答量:311
采纳率:100%
帮助的人:306万
展开全部

可以用一个循环,如下

for(int i=0;i<4;i++)
for(int j=0;j<4;j++)  
    box[i][j]=0;

 也可以在定义时初始化:int box[4][4] = {{0},{0},{0},{0}};

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-04-25
展开全部
类比这个:int a[2][3]={{1,2,3},{4,5,6}};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式