struct dev
{
typedef void (*f)();
};
void hello(void)
{
printf("hello\n");
}
int main()
{
struct dev *tmp=(struct dev*)malloc(sizeof(struct dev));
memset(tmp,0,sizeof(struct dev));
int a =0;
if(a)
tmp->f=hello;
tmp->f();
}
出现段错误:如何分析解决?
把 tmp->f 打印出来是否为空 printf("tmp->f =%p\n",tmp->f); 或者同时把hello()函数的入口地址和tmp->f指向的地址 都打印出来。看是否一致。
以上 tmp->f 实际指向为NULL