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,这样 是 没问题 就是 太慢了 展开
#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,这样 是 没问题 就是 太慢了 展开
4个回答
展开全部
只能在定义变量的时候初始化是比较方便的,过了那个村就没有那个店了。也就是只能一个一个定义了,当然如果有规律可循的就可以用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}};
初始化时定义可如下(我这里给出的是数组个数为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}};
展开全部
如何全部初始化为0 的话:
memset(box[0],0,4*4*sizeof(int));
如果初始化为其他固定的数,那就只能写一个函数,就像你写的一样
memset(box[0],0,4*4*sizeof(int));
如果初始化为其他固定的数,那就只能写一个函数,就像你写的一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用一个循环,如下
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}};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询