【发布时间】:2013-10-03 05:18:00
【问题描述】:
我不知道我在下面的代码中做错了什么。正常编译时,这是我收到的错误
blob.c:在函数“main”中: blob.c:19:14:警告:取消引用'void *' 指针 [默认启用] blob.c:19:14: 错误:在不是结构或联合的东西中请求成员“x”
#include<stdio.h>
#include<stdlib.h>
typedef struct {
int*x;
}TIM;
main(){
void*o;
TIM * a;
a=(TIM*)malloc(sizeof(TIM));
a->x=(int*)malloc(sizeof(int));
*(a->x)=10;
o=(void*)a;
free((TIM*)o->x);
free((TIM*)o);
}
有人可以指点我正确的方向吗。欢迎提供提示。如果提示看起来太明显,请回答。
【问题讨论】:
-
提示:第 19 行的
o->x无效,因为此时的o还不是TIM *类型,因此没有成员x