Его довольно просто, когда вы обнимаете то, что указатель. В первом коде IntElement *head
head является указателем на существующий заголовок связанного списка. Таким образом, вызывающий объект передается по адресу элемента заголовка списка. Изменение значения головки во вставке в переднюю функцию не изменяет ничего на вызывающем. Значение этого адреса было передано вашей функции, а не то, что удерживало этот адрес у вызывающего.
Вам нужно передать свою функцию «адрес адреса головы» - или IntElement **head
, Это позволит этой функции изменить адрес, удерживаемый вызывающим абонентом, т. Е. Обновить связанный список, чтобы указать на новую головку.