我寫
while (ptr->next != NULL) {
//code here
ptr = ptr->next;
}
并且 AddressSanitizer 引發堆緩沖區溢位錯誤。
我加了
if (ptr->next != NULL) {
while (ptr->next != NULL) {
//code here
ptr = ptr->next;
}
}
希望它可能會避免讀取未分配的地址,但現在 AddressSanitizer 正在使用 SEGV 終止我的程式。我不太確定如何解決這個問題,因為我是 C 編程的新手,任何見解都會非常有幫助。謝謝!
uj5u.com熱心網友回復:
你可以做
while(ptr != NULL) {
// code
ptr = ptr->next;
}
甚至
for(type* i = ptr; i != NULL; i = i->next) {
// code
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/368935.html
