Nadi: lineare Liste wieder löschen

Beitrag lesen

Hi,

habe mir nun mal eine eigene Liste geschrieben und scheitere gerade bei der Funktion zum Freigeben der Elemente/Liste:

void delusers(user * any_existing_user)
{
 user * puser=0;
 if(any_existing_user==0)
  return;
 while(any_existing_user->pnext!=0)
 {
  any_existing_user=any_existing_user->pnext;
 }
 do
 {
  if(any_existing_user->ppredecessor!=0)
   puser=any_existing_user->ppredecessor;
  any_existing_user=any_existing_user->ppredecessor;
  delete any_existing_user;
  any_existing_user=puser;
 }
 while(puser!=0);
 return;
}

Erstellt wird jedes Element mit (wobei beim ersten die 0 als Parameter übergeben wird):

user *insuser(user * any_existing_user)
{
 if(any_existing_user!=0)
  while(any_existing_user->pnext!=0)
  {
   any_existing_user=any_existing_user->pnext;
  }
 user * puser=new user;
 puser->ppredecessor=any_existing_user;
 if(puser->ppredecessor!=0)
 {
  puser->ppredecessor->pnext=puser;
 }
 puser->pnext=0;
        //do some initialisations
 return puser;
};

und die Struktur user beinhaltet u.a. pnext und ppredecessor.
Leider will mir der Compiler nichts genaueres verraten, aber es gibt irgendein Speicherproblem, wenn ich mehr als 1 User erstellt habe. Das Problem tritt beim Löschen auf.
Sehr ihr irgendeinen Fehler (ungeachtet, dass manches nicht sehr effizient umgesetzt wurde).

Hoffe auf eure Tipps.
Danke vielmals im Voraus