Я создал связанный список, и когда я попытался напечатать значения узлов и использовал 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 узлов, он просто продолжает работать.Я не могу понять, почему это происходит.