gpt4 book ai didi

C – 初始化包含多个数组的二维全局静态结构数组

转载 作者:行者123 更新时间:2023-11-30 20:22:36 27 4
gpt4 key购买 nike

我想初始化一个二维全局静态结构数组,其中包含数组。以下似乎不起作用。

struct MyStuct{
int a;
int b;
int c[2];
int d[2];
};
STATIC MyStuct[2][3] = {
{{1,1,{1,1},{1,1}},
{2,2,{2,2},{2,2}},
{3,3,{3,3},{3,3}}},
{{7,7,{7,7},{7,7}},
{8,8,{8,8},{8,8}},
{9,9,{9,9},{9,9}}}
};

有什么建议吗?

谢谢

最佳答案

struct MyStuct{
int a;
int b;
int c[2];
int d[2];
};

static struct MyStuct test [2][3] =
{
// | COL 0 | | COL 1 | | COL 2 |
/* ROW 0 */ { {1,1,{1,1},{1,1}}, {2,2,{2,2},{2,2}}, {3,3,{3,3},{3,3}} },
/* ROW 1 */ { {7,7,{7,7},{7,7}}, {8,8,{8,8},{8,8}}, {9,9,{9,9},{9,9}} }
};

您的矩阵声明必须使用结构作为类型,即struct MyStuct test

仅供测试:

#include <stdio.h>

int main (void)
{
struct MyStuct{
int a;
int b;
int c[2];
int d[2];
};

struct MyStuct test [2][3] =
{
// | COL 0 | COL 1 | COL 2 |
/* ROW 0 */ { {1,1,{1,1},{1,1}}, {2,2,{2,2},{2,2}}, {3,3,{3,3},{3,3}} },
/* ROW 1 */ { {7,7,{7,7},{7,7}}, {8,8,{8,8},{8,8}}, {9,9,{9,9},{9,9}} }
};

for (size_t i=0; i< 2; i++)
{
for (size_t j=0; j<3; j++)
{
printf("test[%zu][%zu].a = %d\n", i, j, test[i][j].a);
printf("test[%zu][%zu].b = %d\n", i, j, test[i][j].b);

for (size_t z=0; z<sizeof(test[i][j].c)/sizeof(test[i][j].c[0]); z++)
{
printf("test[%zu][%zu].c[%zu] = %d\n", i, j, z, test[i][j].c[z]);
}

for (size_t z=0; z<sizeof(test[i][j].c)/sizeof(test[i][j].c[0]); z++)
{
printf("test[%zu][%zu].d[%zu] = %d\n", i, j, z, test[i][j].c[z]);
}

printf("\n");
}
}

return 0;
}

关于C – 初始化包含多个数组的二维全局静态结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39202748/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com