为什么指向链表初始化中使用的函数?

我正在读一本关于算法的书,作者用这段代码定义了双链表:

void dlist_init(DList *list, void (*destroy)(void *data));

在这里使用函数指针来销毁函数有什么用?
我们不能稍后在任何列表上调用destroy()函数吗?
为什么在初始化期间传递指针?

最佳答案
函数指针传递给初始化函数,以便列表函数知道如何销毁列表条目.列表函数旨在对各种条目进行操作,因此需要“告知”如何销毁此列表将具有的特定条目.

转载注明原文:为什么指向链表初始化中使用的函数? - 代码日志