在嵌套的结构体中给二维数组赋值

在嵌套的结构体中给二维数组赋值

struct first
{
	char str[10];
	int arr[6][4];
}st_1;

struct second
{
	st_1 buff[10];
	int n;
}st_2;

1.问:scanf();中应该怎样写,才能对结构体 st_1中的二维数组 arr[]赋值

//是定义一个指针数组接收值吗
int st1_arr[6];
int (*arr)[4]=st1_arr;
scanf("%d%d",st1_arr[2],st1_arr[2]+1);

2.问:新建一个插入函数,如何把结构体实例st_1的arr数组存入st_2.buff[0]中

void insert(st_2 *p, st_1 *data)
{
	p->buff[0].arr=?
}

insert(&st_2,&st_1);

3.捞一个旧问题,之前俄罗斯方块项目有个问题没回复:
源自: C项目实践-俄罗斯方块游戏 \ 2-8 按键控制俄罗斯方块上

正在回答

登陆购买课程后可参与讨论,去登陆

1回答
  1. 问题 1 ,结构体的二维数组 需要使用循环一个一个赋值,跟普通的二维数组的赋值方式是一下,就是多了一层结构体访问

    st_1 st;

    for(int i = 0;i < 4;i++){

        for (int j =0;j < 6;j++){

         scanf("%d",&st.arr[i][j])

    }


    }


  • 慕小白0101 提问者 #1

    buff[0] 只是一个整型

    问题1:我在创建struct second结构体的时候,类型是st_1呀,为什么说是int型

    st_1 buff[10];这行代码表示的是结构体集合,这是我的理解,请问正确吗?
    2023-04-13 19:39:56
  • 慕小白0101 提问者 #2
    struct first
    {
    	int arr[2];
    }st_1;
    
    struct second
    {
    	st_1 buff[3];
    	int n;
    }st_2;
    
    st_1.arr[0]=1;

    问题:如何使用memcpy()拷贝st_1.arr[0]到st_2.buff[0].arr[0]中?


    2023-04-13 23:12:55
  • 无__名 回复 提问者 慕小白0101 #3

    类型上我看成整型了, 数组定义的没有问题

    2023-04-13 23:29:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师