3

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

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

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

4

1 回答 1

7

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

于 2013-04-02T20:06:23.487 回答