C 访问和分配“中结构的每个部分中的值”;数组";结构?
所以我有一个分配,分配足够的内存来存储一组具有不同值的结构。我只能给马洛克打一次电话 A的结构如下所示:C 访问和分配“中结构的每个部分中的值”;数组";结构?,c,pointers,struct,C,Pointers,Struct,所以我有一个分配,分配足够的内存来存储一组具有不同值的结构。我只能给马洛克打一次电话 A的结构如下所示: typedef struct ObjectTag Object; struct ObjectTag { char *stringA[20]; char *stringB[30]; char *stringC[5]; unsigned short num; }; 为了我的malloc电话我正在做 Object *myObjArray; myObjArray=
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));
fscanf(inFile, " %s", (*Object)[i].stringA);
fscanf(inFile, " %s", (*Object)[i].stringB);
fscanf(inFile, " %s", (*Object)[i].stringC);
fscanf(inFile, " %hu", (*Object)[i].num);
我试图从填充中获取信息,并将其放入我的结构中。我就是这样做的
Object *myObjArray;
myObjArray= (Object*)malloc(numObjects * sizeof(Object));
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个未指定长度的字符串组成的数组。你确定这就是你想要的吗?字符*stringA[20]不是由20(或19)个字符组成的字符串。它是一个由20个未指定长度的字符串组成的数组。你确定这就是你想要的吗?哇,我觉得很傻,你知道为什么第二个错误还在发生吗?%hu一个。因为要输入一个数字(无论是int、short、long、float、double等),你应该把它的地址给fscanf,比如intfoo;fscanf(“%d”和&foo)代码>这是因为没有函数可以更改其参数.Doh的值,这很有意义。很抱歉为这个蹩脚的问题烦恼。哇,我觉得自己很笨,你知道为什么第二个错误还在发生吗?%hu一个。因为要输入一个数字(无论是int、short、long、float、double等),你应该把它的地址给fscanf,比如intfoo;fscanf(“%d”和&foo)代码>这是因为没有函数可以更改其参数.Doh的值,这很有意义。很抱歉为这个蹩脚的问题烦恼。