看下面的代码...我在行号上看到了所述错误。 6 ... 请问谁能解释为什么会这样?
#include<stdio.h>
struct test{
int data;
};
typedef struct test* Test;
Test obj=(Test) calloc(1,sizeof(struct test));
int main()
{
return 0;
}
答案 0 :(得分:5)
变量obj
驻留在文件范围内,因此它的初始化程序必须是编译时间常数。您正在尝试调用一个函数。不允许这样做,否则将意味着代码将在函数外部运行(在本例中为调用函数)。
您需要将为值赋值的代码移到主函数中。
#include<stdio.h>
struct test{
int data;
};
typedef struct test* Test;
Test obj;
int main()
{
obj = calloc(1,sizeof(struct test));
return 0;
}