콘솔 응용 프로그램에서 콘솔에서 일부 char 데이터를 읽은 다음 구조에 넣습니다. 이 구조는 링크 된 목록으로 사용됩니다. 생성 될 때 첫 번째 목록 요소를 가리키는 포인터 하나와 목록을 실행하는 포인터 하나를 유지합니다. 내게 무슨 일이 일어나는가는 처음으로 목록을 살펴보고 내용을 콘솔에 쓰면 모든 것이 완벽하게 작동한다는 것입니다. 나중에 마지막 요소 목록에 내 실행 포인터를 설정하려면 c000005 액세스 위반 오류로 계속 충돌합니다.포인터로 인해 액세스 위반이 발생합니다.
struct musikdaten {
char interpret[150];
char titel[150];
struct musikdaten* next;
};
이 목록의 내용 인쇄 : 내 구조의
정의 : 내가 당신에게 내 코드의 흥미로운 부분 줄 것이다
while (it != NULL) {
cout << it->interpret << ": " << it->titel << "\n";
cout << "next: " << it->next << "\n";
it = it->next;
}
설정을 "을"목록 마지막 요소로 :
그러나이 마지막 부분은 목록에 두 개 이상의 요소가 포함되어 있습니다. 주 : 콘솔에서 내용을 읽는 동안 새 목록 요소를 추가하면 다음 포인터는 항상 NULL로 초기화됩니다.
을, 'it-> next'는 null이 될 수 있습니다. –
NULL 포인터를 it-> next가 아닌 모든 곳에서 확인하고 올바르지 않은 경우 메시지를 씁니다. 여기에 오류가없는 것 같습니다. – Dejan