我正在读一本关于算法的书,作者用这段代码定义了双向链表:
void dlist_init(DList *list, void (*destroy)(void *data));
这里函数指针销毁函数有什么用? 我们不能稍后在任何列表上调用 destroy() 函数吗? 为什么在初始化期间将指针传递给它?
最佳答案
函数指针被传递给初始化函数,以便列表函数知道如何销毁列表条目。列表函数旨在对所有类型的条目进行操作,因此需要“告诉”它们如何销毁此列表将包含的特定条目。
关于c - 为什么在链表初始化中使用指向函数的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15773339/