c - 错误 : variable ‘database’ has initializer but incomplete type?

标签 c struct

我有这个 typedef 结构和一个“构造函数”:

typedef struct database {
    char key;
    char value;
    struct database *next;
} Database;


Database db_createDb() {
    Database *db;
    db = malloc(sizeof(struct database));

    return *db;
}

我正在从主函数调用:

int main(int argc, char *argv[]) {
    Database database = db_createDb();
}

为什么我会收到错误消息“数据库有初始化程序但类型不完整”?

最佳答案

通过Database更改database,并保留指针以备后用:

Database * db_createDb() 
{
    Database *db;
    db = (Database *)malloc(sizeof(Database));

    return db;
}

int main(int argc, char *argv[])
{
    Database * database = db_createDb();

    ....
    free(database);

}

关于c - 错误 : variable ‘database’ has initializer but incomplete type?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20142394/

相关文章:

Windows平台C语言控制串口DTR和RTS引脚

C - (ptr = = &ptr) 什么是*ptr?

C: 尝试实现无名管道

c - char str[] 中大括号之间的值是什么意思?

c - 将结构传递给函数

c - 如何正确地使我的生成文件编译和运行?

c - OFFSETOF 宏结构字段

json - 带有结构数组的 Golang 和 JSON

创建一个简单的字符串结构

使用 for 循环创建链表