Как взаимодействовать с указателем в структуре через указатель?
Не разыменовывать указатель. Вместо return *head->... должно быть return head->....
head->nextaddres - ListElement**head->nextaddres - ListElement
А ещё если у тебя не будет вершины, при вызове метода Empty будет UB