我正在尝试修改一些使用 linux 内核中使用的 C 链表的代码,例如 this one用于联邦调查局。但我实际上需要清除列表并从头开始,我不确定最安全的方法。我也找不到在线示例。
关于如何安全地清除列表和释放所有内存有什么想法吗?
最佳答案
也许我找到了答案(数字...) 像下面这样的东西会起作用吗?
void delete_all(struct list_head *head)
{
struct list_head *iter;
struct foo *objPtr;
redo:
__list_for_each(iter, head) {
objPtr = list_entry(iter, struct foo, list_member);
list_del(&objPtr->list_member);
free(objPtr);
goto redo;
}
}
关于c++ - 清除 Linux 内核链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11690158/