gpt4 book ai didi

c - 结构体中的结构体数组?

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

我有一个结构Register和结构ModbusReadStructRegister声明如下:

typedef struct {
int TypeID;
char InstrumentType[32];
char RegTag[32];
char Protocol[32];
int RegNum;
char RW[32];
char RegisterType[32];
char Signed[32];
char Inverted[32];
char DataType[32];
int Counts;
} Register;

我想声明结构ModbusReadStruct如下:

typedef struct {
int Address;
int Port;
int BaudRate;
int DataBits;
int StopBits;
int RegID;
int Sampling;
char InstanceName[32];
int InstNum;
int MBNum;
int PortNum;
int RegNum;
Register Register[64];
} ModbusReadStruct;

然而,这种精确的实现会导致错误(段错误)。实现与我上面的想法类似的功能的最佳方法是什么?

最佳答案

您发布的结构声明完全正确,除了您对类型和 ModbusReadStruct 的结构成员名称使用相同的标识符 Register 之外。

段错误表明您的代码存在问题,而不是结构声明本身存在问题。

正如 EOF 所评论的,正如声明的那样,ModbusReadStruct 结构的大小约为 17KB。虽然在现代 PC 上可以通过自动存储(也称为在堆栈上)分配此类对象,但在嵌入式系统上堆栈空间可能会少得多。分配足够大小的 ModbusReadStruct 本地数组也会是一个问题。

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

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