Где бы вы ни располагали значение T x
и вам нужна другая функция для его изменения, вы передаете указатель на x
:
T x; // set to some value
modify_me(&x); // will change x
/* ... */
void modify_me(T * x)
{
*x = new_value;
}
Теперь просто примените этот механизм к T = IntElement*
, Значения, которые вы хотите изменить, сами являются указателями!
(Возможно, использование typedef сделает вещи менее запутанными: typedef IntElement * NodePtr;
.)
Также обратите внимание, что ваш связанный список не работает потому что вы никогда не устанавливаете «следующий» указатель нового элемента на указатель на старую голову и аналогично для «предыдущего» указателя, если список дважды связан.