在h.c文件中:
#include <stdlib.h>
typedef struct
{
int x;
}XS;
typedef struct
{
XS x_array[10];
}YS;
extern YS y;
在m.c文件中:
#include "h.c"
int void main()
{
YS y = malloc(sizeof(YS));
y.x_array[0].x = 1;
free(y);
return 0;
}
这将无法编译,我不知道为什么。有人可以阐明这一点吗?
最佳答案
您的主体必须看起来像这样:
#include "h.h"
int main()
{
YS *y = malloc(sizeof(YS));
y->x_array[0].x = 1;
free(y);
return 0;
}
在h.h文件中:
#ifndef H_H
#define H_H
#include <stdlib.h>
typedef struct
{
int x;
}XS;
typedef struct
{
XS x_array[10];
}YS;
#endif
关于c - 声明和初始化全局结构时遇到麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33639804/