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