gpt4 book ai didi

c++ - 链表 - 指针

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:16:28 25 4
gpt4 key购买 nike

我创建了一个链表,当我尝试打印节点的值并使用 NULL 作为界限时,它没有用。例如:

#include <iostream>

typedef struct Node;
typedef Node* Node_ptr;
struct Node
{
int i;
Node_ptr next;
};

int main()
{
Node_ptr ptr, head;
ptr = new Node;
head = ptr;

// load
for(int j = 0; j < 4; j++)
{
ptr->next = new Node;
ptr->i = j;
ptr = ptr->next;
}

// print
ptr = head;
while(ptr->next != NULL)
{
std::cout << "print: " << ptr->i << std::endl;
ptr = ptr->next;
}
}

但是,当我运行这段代码时,代码陷入了 while 循环的死循环。它永远不会理解链表只有 5 个节点长,它只是继续前进。我不明白为什么会这样。

最佳答案

您可能只需要初始化您的指针(为 NULL),否则它们将只包含垃圾,因此也将显示为有效指针。

例如:

for(j = 0; j < 4; j++)
{
ptr->next = new Node;
(ptr->next)->next = NULL;
ptr->i = j;
ptr = ptr->next;
}

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com