Я создал связанный список, и когда я попытался напечатать значения узлов и использовал 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;
}
}
Однако, когда я запускаю этот код, он застревает в бесконечном цикле в то время цикла. Он никогда не понимает, что связанный список имеет длину всего 5 узлов, он просто продолжает двигаться. Я не понимаю, почему это происходит.
Это недопустимый код C или C++. Там пропали точки с запятой, и бродячие 'typedef', missing'} '... –
Вы проверяете NULL, но вы его установили в любом месте? – tinman
..и когда вы исправили это, вам нужно выполнить некоторую отладку. –