weidu23 2021-12-23 20:29 采纳率: 0%
浏览 42

指针指向函数,那么需要free吗?

我们经常使用sturct,并在struct中添加..(*)(..)函数指针类型变量。例如

struct Global
{
    int *a;
    void(*func)(int); // 字符串处理
};
typedef struct Global Global;

void myFunc(int) ;
void intiMyGlobal(){
    Global * b = (Global*)malloc(sizeof(Global)) ; 
    b->func = myFunc ;
}

void myFunc(int i){
    //一堆代码;
}

如代码所属,有个问题想要请教:
当我们free(b)之前,我们是否需要先 free(b->func),还是说,不需要free掉b->func函数指针?为什么呢?

  • 写回答

1条回答 默认 最新

  • 狐狸小十 2021-12-24 12:26
    关注

    不能free,函数指针指向代码区函数入口
    试下就知道了,肯定会崩

    评论

报告相同问题?

问题事件

  • 创建了问题 12月23日