错误:')'令牌转换问题之前的预期primary-expression

时间:2014-08-02 01:20:43

标签: c++ c struct malloc

我正在试图弄清楚为什么在初始化struct成员变量期间我为此演员程序收到编译错误(在此消息的标题中)。

myclass.h中的

class 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文件中定义的,并且在它不起作用的情况下,结构是类标头的成员。你知道为什么这是一个问题,或者我可以做些什么来修复它?

感谢。

1 个答案:

答案 0 :(得分:1)

您可能会错过static instantiate()的返回类型 static void instantiate()