#cpp
В связном списке создаются объекты с одинаковым адресом памяти и разными значениями
их полей.Как такое возможно? Знающих прошу не минусовать, а ответить.Буду очень благодарен.
class LinkList
{
struct Node
{
int a;
Node* next;
};
Node* head=nullptr;
public:
void add(int x)
{
Node* current = new Node;
current->a = x;
current->next = head;
head = current;
}
void print()
{
while (head != NULL)
{
cout << head->a <<" location: "<<&head<next;
}
}
};
int main(){
LinkList obj;
obj.add(1);
obj.add(2);
obj.add(3);
obj.add(4);
obj.add(5);
obj.print();
return 0;
}
вывод:
5 location: 0x22fecc
4 location: 0x22fecc
3 location: 0x22fecc
2 location: 0x22fecc
1 location: 0x22fecc
Ответы
Ответ 1
В print() вы печатаете адрес указателя head. Заметьте: не адрес, хранящийся в head, а адрес самого head. Решение - убрать & отсюда: cout << head->a <<" location: "<<&head<
Комментариев нет:
Отправить комментарий