Listy jednokierunkowe - inny zapis

Witam,

Musisz stworzyć element typu List, np.

List list;

i zamiast używać samej nazwy to używać

list.head

albo

list->head

w zależności czy alokacja była odpowiednio na stosie, czy na stercie.

#include <iostream>

using namespace std;

struct ELEM{
	int dane;
	ELEM *next;
};

struct LIST{
	ELEM *head;
};


void wstaw(LIST *glowaListy, int wartosc){
	ELEM *nowy = new ELEM;
	nowy->dane = wartosc;
	nowy->next = glowaListy->head;
	glowaListy->head = nowy;
}


void wypisz(LIST *glowaListy){
	ELEM *wnowy = glowaListy->head;
	while (wnowy != NULL){
		cout << wnowy->dane << " ";
		wnowy = wnowy->next;
	}
	cout << endl;
}


int main(){

	LIST *hhead = new LIST;
	hhead->head = NULL;
	wstaw(hhead, 1);
	wstaw(hhead, 2);
	wstaw(hhead, 3);
	wypisz(hhead);
	
	system("pause");
	return 0;
}

Czyli funkcje pisałem poprawnie, problem miałem z poprawną inicjalizacją. Podaję poprawnie rozwiązany mój problem.