【发布时间】:2012-05-06 08:08:36
【问题描述】:
我有一个结构定义为:
typedef struct {
int type;
void* info;
} Data;
然后我想使用以下函数将其他几个结构分配给 void*:
Data* insert_data(int t, void* s)
{
Data * d = (Data*)malloc(sizeof(Data));
d->type = t;
d->info = s;
return d;
}
struct {
...
} Struct#;
那我就打个电话
insert_data(1, variable_of_type_Struct#);
当我编译它时它会发出警告
warning: assignment from incompatible pointer type
我尝试将插入中的变量强制转换为 (void*) 但没有成功
insert_data(1, (void *) variable_of_type_Struct#);
我怎样才能摆脱这个警告?
谢谢
【问题讨论】:
-
铸造
mallocis unnecessary的结果。Data * d = malloc(sizeof(Data));就足够了。 -
我感觉这些尖锐的“#”字符也在您的代码中。它们与宏连接,不确定它们在您的代码中做什么。
-
为什么这个 struct {...} Struct#;在你的代码中?我只是好奇。
标签: c void-pointers structure