Первоначально current
не является nullptr
, затем, скажем, current->next
является nullptr
.Таким образом, после выполнения current = current->next
, current
становится nullptr
.
Затем current->next == nullptr
оценивается, и вы получаете нарушение доступа, так как current
равно nullptr
, потому что вы разыменовываете нулевой указатель плюс небольшое смещение.