所以我有一个赋值来分配足够的内存来存储一组具有不同值的结构。我只被允许一次调用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'
我不知道我做错了什么。
可能相关的注释:
答案 0 :(得分:2)
char *stringA[20]
不是20(或19)个字符的字符串。它是一组20个未指定长度的字符串。你确定这是你想要的吗?