Я программист на языке python, который довольно новичок в C++, и я пытаюсь написать связанный список в первый раз.
В моей книге мне написано это так...
ListNode *node, *newNode = new ListNode(x);
if (head_ != NULL) {
node = _find (size_ - 1);
node->link_ = newNode;
}
else {
head_ = newNode;
}
size_ += 1;
это имеет смысл, но это кажется более сложным, чем мой первоначальный подход...
void LList::append(ItemType x)
{
ListNode *node=head_, *newNode = new ListNode(x);
while (node->link_ != NULL) {
node = node->link_;
}
node->link_ = newNode;
size_ += 1;
}
К сожалению, я получаю странное сообщение, когда пытаюсь запустить его на X-Code для Mac OSx Mountain lion.
Thread: 1 EXC_BAD_ACCESS(code=1, address=0x8)
Может ли кто-нибудь объяснить мне, что это значит?
Если список пуст, head_
является NULL или неинициализирован, и ваш код не проверяет эту возможность. Ваш код попытается прочитать head_->link_
, который не выделен, что head_->link_
к ошибке доступа к памяти.
head_
даже не инициализирован.