gpt4 book ai didi

c - 在结构体数组内初始化结构体数组

转载 作者:行者123 更新时间:2023-11-30 14:25:57 25 4
gpt4 key购买 nike

我在初始化结构数组内的结构数组时遇到问题。例如,如果我有如下代码:

#include <stdio.h>

int main() {

typedef struct {
int a;
int b;
int c;
} FIRST_T;

typedef struct {
int x;
int y;
int z;
FIRST_T *p;
} SECOND_T;

FIRST_T p1[]={{1,2,3},{3,4,5},{6,7,8}};
FIRST_T p2[]={{4,5,6},{7,8,9}};

SECOND_T my_second[]=
{
{1,2,3,p1},
{4,5,6,p2}
};

}

如果我必须在第二个数组初始化部分本身中初始化第一个数组,那么我将如何编写 SECOND_T 的 typedef?就像

SECOND_T my_second[]=
{
{1,2,3,{{1,2,3},{4,5,6},{7,8,9}}},
{4,5,6,{{1,1,1},{2,2,2}}}
};

那我的SECOND_T应该怎样呢?

我确信我不能将其定义为:

typedef struct {
int x;
int y;
int z;
FIRST_T p[]; //(I know its a blunder)
} SECOND_T;

请帮忙。

最佳答案

在 C 中不能定义无界数组的类型,必须指定维数。所以你要么这样做:

typedef strut {
int x;
int y;
int z;
FIRST_T f[SOME_VALUE];
} SECOND_T;

然后始终初始化SOME_VALUE成员数量,或者按照您的方式进行操作。

关于c - 在结构体数组内初始化结构体数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9834897/

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