我有一個控制檯應用程序從控制檯讀取一些字符數據,然後放入結構中。這個結構被用作鏈表,當它被構造時,我保持一個指向第一個列表元素的指針和一個用於遍歷列表的指針。 發生在我身上的是,當我第一次運行我的列表並將其內容寫入控制檯時,一切都正常運行。當我以後想要將我的運行指針設置爲列表的最後一個元素時,它會因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;
}
設置「它」的名單最後一個元素:
while (true) {
if (it->next == NULL) {
cout << "Assigning some memory...\n";
it->next = new musikdaten;
break;
}
else it = it->next;
}
但是,這最後一部分不斷崩潰時列表包含兩個以上的元素。 注意:當從控制檯讀取內容時添加新的列表元素時,下一個指針總是被初始化爲NULL。
你是什麼COUT'它 - > next', 'it-> next'可以爲空 –
將NULL指針檢查放在哪裏,即使在它上面,不僅僅在它上面 - >接下來,如果它不正確,則寫出消息。我似乎無法在這裏找到任何錯誤。 – Dejan