如何释放链表中的指针?

时间:2016-03-29 15:05:46

标签: c pointers linked-list

简介:
主要功能是从FileDescriptor读取,直到找到EOF或换行符。我的缓冲区大小由用户定义,您可以使用多个FileDescriptor,因为我的链表是静态的 我的问题:
根据缓冲区的大小(偶数与否),我会在第二次通话后(如果我不自由,它完全正常,但我不会有内存泄漏):
正在释放的指针未分配 ***在malloc_error_break中设置断点以进行调试 我唯一免费的是我的建筑功能:

int gnl_build(int fd, char *buf, int ret, gnl_lst **head)
{
    gnl_lst *elem;
    char    *str;

    elem = *head;
    while (elem && elem->fd != fd)
        elem = elem->next;
    if (elem == NULL)
    {
        //building new element
        elem = (gnl_lst *)lstnew(buf, (size_t)(ret + 1));
        elem->fd = fd;
        lstaddback((t_list **)head, (t_list *)elem);
    }
    else
    {
        //create new memory space and copies both strings in the new space
        str = strjoin(elem->content, buf);
        free((*elem).content);
        elem->content = str;
        elem->content_size = strlen(str) + 1;
    }
    if (strstr(elem->content, "\n") != NULL)
        return (1);
    return (0);
}

欢迎任何帮助!感谢。

0 个答案:

没有答案