gcc 4.4.4 c89为结构分配内存
我一直在收到“无法取消引用不完整类型”。
但是,我相信我有我的结构类型完整。我返回指向分配内存的指针的Network_t实例。我应该能够解除这个记忆。
非常感谢任何建议,
我在头文件中有这样的: driver.h
typedef struct Network_t Network_t;
Network_t* create_network(int id);
实现文件 driver.c
#include "driver.h"
struct Network_t {
int id;
};
Network_t* create_network(int id)
{
Network_t *network = malloc(sizeof *network);
if(network) {
network->id = id;
}
return network;
}
在我的主.c
#include "driver.h"
Network_t *network = NULL;
network = create_network(1);
printf("Network ID: [ %d ]\n", network->id); /* Cannot dereference pointer to incomplete type */
请确保您粘贴_exactly_的代码你正在使用,而不是重新键入。 ''driver.c'不能编译,因为'network-> id = id'后没有';'。这让我怀疑代码的其余部分。我想你已经把'#include'行切碎了,否则你可能会得到不同的错误信息。 – 2010-09-11 16:38:39
我已更正这些包含文件。谢谢。 – ant2009 2010-09-11 16:47:40