gpt4 book ai didi

c - 在结构的 "array"中访问和分配结构的每个部分的值?

转载 作者:太空宇宙 更新时间:2023-11-04 08:01:18 25 4
gpt4 key购买 nike

所以我有一个任务分配足够的内存来存储一组具有不同值的结构。我只能调用 malloc 一次。

A 有一个看起来像这样的结构:

typedef struct ObjectTag Object;
struct ObjectTag
{
char *stringA[20];
char *stringB[30];
char *stringC[5];
unsigned short num;
};

对于我正在做的 malloc 调用

Object *myObjArray;
myObjArray= (Object*)malloc(numObjects * sizeof(Object));

我正在尝试从 infile 中获取信息以放入我的结构中。所以我在做

fscanf(inFile, " %s", (*Object)[i].stringA);
fscanf(inFile, " %s", (*Object)[i].stringB);
fscanf(inFile, " %s", (*Object)[i].stringC);
fscanf(inFile, " %hu", (*Object)[i].num);

以此类推。

但是当我尝试编译时出现这个错误

format '%s' expects argument of type 'char *', but argument 3 has type 'char **'

还有最后一个

format '%hu' expects argument of type 'short unsigned int *', but argument 3 has type 'int'

我不知道我做错了什么。

可能相关的注释:

  • 输入文件具有预期的格式
  • 我已经计算了我需要多少结构,正如 malloc 调用中的 numObjects 所指出的那样

最佳答案

char *stringA[20] 不是 20(或 19)个字符的字符串。它是一个由 20 个未指定长度的字符串组成的数组。你确定这是你想要的吗?

关于c - 在结构的 "array"中访问和分配结构的每个部分的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46616930/

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