c - C 中的链表

标签 c linked-list

我正在尝试用 C 语言创建一个链表,其中包含指向结构的指针。我的逻辑有问题。所以我想知道,当删除列表的头部时,我会返回删除的项目,或者,我会返回列表的新头部。另外,如果我要返回新的头,我将如何释放内存? (这部分用于赋值)根据赋值信息,我们不应该在函数中释放被移除的项目。所以是的,我的问题是,我应该在哪里释放内存?这是那段代码。我这里的代码只返回新的头部,如果列表为空则返回 NULL。

MusicRec * removeFromFront(MusicRec * theList)
{
    if(theList == NULL)
    {
        return NULL;
    } 
    return theList->next;
}

最佳答案

简单。每个分配函数都有一个伴随的释放函数,有时还有一整套额外的实用函数。在文档中查找您的分配器。

在您返回之前解除分配。这可能意味着您需要一份临时副本。

顺便说一句:您正在返回正确的值...

关于c - C 中的链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22724363/

相关文章:

c - 我的链接列表中的打印功能不断出现错误,我不知道这些错误告诉我什么

java - 将原始数组添加到链表

c - 没有括号的 for 循环的绝对范围是什么?

c - 调用fork()然后变成调用sys_fork()的过程是怎样的?

c - gdb:将 char 数组显示为 big endian shorts

c - GCC:警告未使用的返回

c - 将 C 代码翻译成 Haskell

c++ - 为什么链表的第一个节点声明为指针?

java - 从链表中删除一个元素

language-agnostic - 有索引链表的已知实现吗?