我有一个小问题,试图malloc这个结构.
这是结构的代码:
这是结构的代码:
typedef struct stats { int strength; int wisdom; int agility; } stats; typedef struct inventory { int n_items; char **wepons; char **armor; char **potions; char **special; } inventory; typedef struct rooms { int n_monsters; int visited; struct rooms *nentry; struct rooms *sentry; struct rooms *wentry; struct rooms *eentry; struct monster *monsters; } rooms; typedef struct monster { int difficulty; char *name; char *type; int hp; } monster; typedef struct dungeon { char *name; int n_rooms; rooms *rm; } dungeon; typedef struct player { int maxhealth; int curhealth; int mana; char *class; char *condition; stats stats; rooms c_room; } player; typedef struct game_structure { player p1; dungeon d; } game_structure;
dungeon d1 = (dungeon) malloc(sizeof(dungeon));
解决方法
您不能将任何东西投射到结构类型.我想你想写的是:
dungeon *d1 = (dungeon *)malloc(sizeof(dungeon));
但是请不要在C程序中转换malloc()的返回值.
dungeon *d1 = malloc(sizeof(dungeon));
将工作很好,不会隐藏#include错误从你.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。