请问个关于指针的问题,谢谢
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int a;
}arg;
void f1(void*);
int main()
{
arg x;
x.a=90;
f1((void*)&x);
return 0;
}
void f1(void*m)
{
arg b;
arg *n;
n=(arg*)m;
b.a=(arg*)m->a; //为什么这行是错的?
b.a=n->a; //为什么这行又是对的?
printf("...%d...\n",b.a);
}
问题如注释所说
b.a=(arg*)m->a; //为什么这行是错的?
b.a=n->a; //为什么这行又是对的?
编译:gcc p.c
报错:
p.c:19:20: warning: dereferencing ‘void *’ pointer [enabled by default]
p.c:19:20: error: request for member ‘a’ in something not a structure or union