【问题标题】:Function pointer called with free用 free 调用的函数指针
【发布时间】:2021-01-06 02:11:22
【问题描述】:

我正在练习一本关于使用 C 编程的算法的书中的一些程序。 我看到以下功能:
void list_init(List *list, void (*destroy)(void *data)) {

/*  Initialize the list. */

list->size = 0;
list->destroy = destroy;
list->head = NULL;
list->tail = NULL;

return;

}

后来被称为:

list_init(&list, free);

我认为free 是 C 语言中的一个函数,它被描述为:void free(void *ptr),因此需要一个参数。

那么,为什么free 本身作为list_init 的参数提供?有人可以帮我理解一下吗?

谢谢。

【问题讨论】:

    标签: list free singly-linked-list


    【解决方案1】:

    我想出了这个。当调用 list->destroy(data) 时,free 的参数在另一个函数中提供。这是因为 list->destroy 设置为 'free' 的地址。

    【讨论】:

      猜你喜欢
      • 2016-03-20
      • 1970-01-01
      • 2020-04-18
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多