如何释放Xcode中的链表

时间:2012-12-21 11:01:03

标签: iphone xcode list linked-list

我有这样的结构

struct list
{
    struct list *next;

    int temp;
};

我使用以下方法释放

...。 ...。 ...

// free linked list
struct list *head_list = NULL;
struct list *current_list = NULL;
struct list *prev_list = NULL;

current_list = head_list;
while (current_file_info_arr != NULL)
{
    prev_list = current_list;
    current_list = current_list->next;
    free(prev_list);
}   

我收到了警告

Memory error
Use of memory after it is freed

有什么好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

我认为你只需要替换

while (current_file_info_arr != NULL)

while (current_list != NULL)

但是假设你实际上有一个列表 - 先前已分配/构建 - 并且head_list指向它的开头。如果head_listNULL,就像在您的代码段中一样:

struct list *head_list = NULL;

然后Memory error并不令人意外。你试图释放NULL,这确实是一个错误。