我正在寻找代码中的错误(在C中),我找不到任何东西。 我已经查看了许多博客并尝试过很多建议,但没有任何帮助 我已编码:
typedef struct Account_t *Account;
struct Account_t {
Customer customer;
Realtor realtor;
Offer offer;
};
虽然房地产经纪人,客户和要约都已明确定义并包含在.h文件中。我收到一条错误消息,指出"取消引用指向不完整类型的指针' struct Account_t' "我写的时候:
Account account = malloc(sizeof(*account));
请帮我找到问题!
答案 0 :(得分:0)
我尝试了你的代码。我和你有类似的问题。
问题在于您的代码,当您在堆中分配结构时,返回的值被错误分配,因为malloc返回一个指针。
我的代码如下:
Account* account = (account*)malloc(sizeof(account));
第二件事: 作为类型定义,我没有将结构定义为指针。
typedef struct account_t Account;
试试这个,我希望这些信息有用!
答案 1 :(得分:-2)
typedef struct Account_t *Account;
struct Account_t {
Customer customer;
Realtor realtor;
Offer offer;
};
第一行定义Account
作为指向struct Account_t
的指针。但是,此时struct Account_t
未定义。
您必须首先定义struct
,然后定义typedef
。
struct Account_t {
Customer customer;
Realtor realtor;
Offer offer;
};
typedef struct Account_t *Account;
现在您可以愉快地使用Account
。
答案 2 :(得分:-3)
我会说,你必须做这样的事情:
帐户帐户=(帐户)malloc(sizeof(* account));