Учитывая следующее после t = new Node
, каждая из следующих строк производит следующие изменения.
Память выделенная для n & t.
n->+-----------+ t->+-----------+
|data = ? | |data = ? |
|next = ? | |next = ? |
+-----------+ +-----------+
значение, присвоенное data
элемента памяти, на которую ссылается п.
n-data = 2;
n->+-----------+ t->+-----------+
|data = 2 | |data = ? |
|next = ? | |next = ? |
+-----------+ +-----------+
значение, присвоенное next
элемента памяти, на которую ссылается т.
И это произойдет в случае расположения n.
t->next = n;
n->+-----------+ t->+-----------+
|data = 2 | |data = ? |
+->|next = ? | |next = @n |--+
| +-----------+ +-----------+ |
+-----------------------------------+
Значение т перенаправлены ссылаться же, как память t.next
(которая в настоящее время n
).
Вы должны заметить, что ни в каком пункте вы не установили элемент next
из n.
t = t->next;
vv orphan vv
n->+-----------+ +-----------+
t->|data = 2 | |data = ? |
+->|next = ? | |next = @n |--+
| +-----------+ +-----------+ |
+-----------------------------------+
ВНИМАНИЕ Вы также потеряли только ссылаться на расположение памяти, выделенной в t = new Node;
. Таким образом, у вас есть утечка памяти.
Вы не инициализировали 'n-> next'. –