Anzitutto devi togliere quel ; dopo il while VVoVe:


Poi all'interno del ciclo devi usare due puntatori, uno tiene memorizzata la posizione attuale, l'altro scorre all'elemento successivo, quindi fai free della posizione attuale e rimetti quel puntatore a quello successivo.

qualcosa del tipo:

void freeMemory(listElementType *p)
{
listElementType *punt;
while(p!=NULL)
{
punt=p;
p=p->next;
free(punt);
}
}


dovrebbe funzionare