当我尝试使用某种结构时,我收到的“数据的存储大小未知”。

码:

ioHelper.h:

    #ifndef IOHELPER_H_
    #define IOHELPER_H_

    typedef struct fileValues data;

    struct fileValues ioInput(FILE* file,int dim,int sign);

    #endif /* IOHELPER_H_ */

ioHelper.c:
    struct fileValues
    {
int dim;
char sign;
double x;
double y;
    };

map.c:
    void drawData(FILE* vectors)
    {

double paramLoc [MAX_DIMENSION];
char sign;
(this is where i get the error) struct fileValues data;
    ...
    }

有任何想法吗?

最佳答案

这是因为在编译map.c时,编译器无法在IoHelper.c中看到该结构的完整定义。

您可能只包括了IoHelper.h,它具有(不完整的)声明,而不是定义。

因此,除非您没有在map.c内部声明该结构类型的变量,

  • 包含IoHelper.c(错误的想法)
  • 将结构定义放入IoHelper.h
  • 在map.c中声明一个指向该结构的指针并对其进行malloc。
  • 10-05 21:33