c - C 中的链表

标签 c linked-list nodes tree-nodes

我在使用双链表时遇到问题:我无法通过另一个节点从节点获取数据。这样:节点->上一个->上一个。但node->prev 没问题。 有人知道为什么吗?

代码:

/*Add value - right side*/
void addListRight(doubleList *node, int value)
        {
        doubleList *newNode;
        newNode = createList();
        newNode->val = value;
        newNode->right = node->right;
        newNode->left = node;
        node->right->left = newNode; /*<-Error start here - 'segmentation error' or something like this*/
        node->right = newNode;
        }

使用Google,我发现有些人这样写():(node->right)->right。我试过了,但结果是一样的。

使用 GCC/Ubuntu 10.10

*我想说“->”的正确单词,但我不知道用英语怎么说。我的错..对不起!这个问题的标签也是如此!

最佳答案

在使用这样的指针之前应该检查 NULL。列表的开头不会有上一个。

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

相关文章:

c - 在 Linux 中使用共享内存通过 IPC 创建的缓冲区

c - 在 MSVC6 中处理大于 2 GB 的文件!

c - 100% cpu 使用率和一个 libpcap 简单示例

arrays - Perl:使用 'splice()' VS 链表插入数组的性能

javascript - 根据值从链表中删除节点

java - XML Java 读取 Node?

c - 如何找到数组的大小(从指向数组第一个元素的指针)?

java - 将线性链表打印到表中

javascript - 在 JavaScript 中的元素之前添加 innerHTML?

c - 从队列中删除偶数