我想弄清楚为什么我得到一个编译错误(在这个消息的标题)在这个结构体成员变量的初始化期间。
在myclass.hclass MyClass {
...
public:
struct cpresets {
char* soundfont_key;
char* exists;
UT_hash_handle hh;
};
...
};
在myclass.cc void myclass::mymethod() {
...
struct cpresets *newpreset;
newpreset = (cpresets*) malloc(sizeof( cpresets));
...
}
在cc文件中还有一个地方可以使用
在myclass.cc...
typedef struct {
...
}mystruct;
...
static instantiate(){
...
//this line causes the compile error
mystruct* me = (mystruct*) malloc(sizeof(mystruct));
...
}
我看到在它工作的情况下的不同之处在于,结构体是在cc文件中定义的,在它不起作用的情况下,结构体是类头的成员变量。你知道为什么这是一个问题,或者我可以做些什么来解决它吗?
谢谢。
您错过了static instantiate()
的返回类型,可能应该是static void instantiate()