你能告诉我为什么编辑内存泄漏后我有很多错误吗?我想修复我做过的内存泄漏。所有记忆都是免费的....但突然间我收到了一堆错误..为什么会发生这种情况?任何解释?!
答案 0 :(得分:1)
free()
没有做你认为它做的事情。您使用之后free
编辑的内存使用malloc
,完成后使用free
。
使用free
将内存返回给操作系统。这意味着你不再使用它了。在malloc
之后立即拨打List *node = malloc(sizeof(List));
free(node);
node->value = v; // can't use node after free()ing it
就像打开电脑,然后立即再次将其关闭。
行
free
这里有问题,因为你分配了内存。然后取消分配(free
)它和然后无论如何都要使用它。移除对free
的来电,然后拨打remove_node
中的{{1}}。