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

时间:2013-04-02 20:04:49

标签: c algorithm data-structures

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

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

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

1 个答案:

答案 0 :(得分:7)

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