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

标签 c algorithm data-structures

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

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

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

最佳答案

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

关于c - 为什么在链表初始化中使用指向函数的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15773339/

相关文章:

c - 遍历链表并将每个值打印到屏幕上 C

algorithm - 基于条件的快速匹配元组

algorithm - 更好的算法和更好的 Big O

php - 调整生成随机强度值的算法

c - 使用数据结构来处理内存的个人 malloc 函数

C 程序对以下系列求和 : S = 1 + (1+2) + (1+2+3)+. ..+(1+2+3+...+N)

c++ - 使用 %c 扫描整数,使用 %d 扫描字符 : unexpected results

java - 从尾部删除的链表

c - 递归函数

python - 我们可以使用映射来搜索而不是二分搜索吗?