我遇到以下错误:


  “错误:成员引用基本类型为'开始'
        (aka'struct no_start *')不是结构或联合”。


因此,我有很多类似的结构:

typedef struct no_start * start;

struct no_start{
   prog * node_program;
};


和这样的功能:

start * insert_start(prog * program){

   start * data = (start *) malloc(sizeof(start));

   data->node_program = program;

   return data;

}


我有一个文件functions.c,其中有像这样的简单函数,一个文件structs.h,其中有结构,最后一个function.h,我声明了第一个文件的功能。

我不明白为什么我有这个错误。对于每个函数,我都会得到与分配一样多的错误。

最佳答案

您无需键入cast即可返回malloc。这样做将创建一个指向指针的指针。作为非强制转换的malloc调用将返回指向为您的结构分配的内存的指针

关于c++ - 带有指针的功能:成员引用基本类型(…)不是结构或 union ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29683031/

10-17 02:43