我有一个通用的链表实现,它的节点结构包含一个 void* 到数据和一个列表结构,它包含对 head 的引用。现在这是我的问题,链表中的节点可能通过其 void* 持有对另一个链表的引用。当我释放包含较小列表的较大列表时,这会导致内存泄漏。所以我想知道有没有办法检查 void* 是否指向另一个列表,所以我跟随并释放它或者只是数据。
如果我在我的结构的开头添加一个键,我可以通过取消引用 void* 来检查它并找出它是一个列表?
编辑:调用者不插入他们由我的函数插入的较小列表我不希望调用者只处理他们持有指针的列表。