我在使用双链表时遇到问题:我无法通过另一个节点从节点获取数据。这样:节点->上一个->上一个 .但是 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;
}
使用谷歌,我发现有些人把 () 是这样的:(node->right)->right。我试过了,但结果是一样的。
使用 GCC/Ubuntu 10.10
*我想说“->”的正确词,但我不懂英文。我的不好..对不起!这个问题的标签也一样!
最佳答案
在使用这样的指针之前,您应该检查 NULL。列表的头部不会有 prev。
关于c - C中的链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4847076/