링크 된 목록을 만들었고 노드의 값을 인쇄하려고 할 때 바인딩으로 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 노드 길이라는 것을 결코 이해하지 못합니다. 나는 그것이 왜 일어나는 지 이해할 수 없다.
유효한 C 또는 C++ 코드가 아닙니다. 세미콜론이없고 누락 된'typedef', 누락 된'} '... –
NULL을 확인하고 있지만 어디에서 설정 했습니까? – tinman
.. 그리고 그것을 고치면 디버깅을해야합니다. –