Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
25.05.2001, 19:44
static_caster



....moinsen,

class CBasePlayerItem{
/* ... */
CBasePlayerItem *m_pNext;
};

int CBasePlayer::AddToPlayer( CBasePlayerItem *pItem)
{
CBasePlayerItem *pInsert;

pInsert = m_rgpPlayerItems[pItem->iItemSlot()];
while(pInsert)
{
/*...*/
pInsert = pInsert->m_pNext;
}
/*...*/
}

diese Rekursion ist mir in mehreren funktionen aufgefallen. (bisher aber nur bei CBasePlayerItem). Ich hab n ganz paar tests laufen lassen - selber ne rekursive klasse gemacht, und probiert, was alles an operationen geht. nun, deklarieren innerhalb einer funktion konnte ich einen zeiger auf die klasse. mehr auch nicht. hab dann immer zugriff auf ungültige speicherseite als antwort von windows bekommen.

und meine fragen sind:
- wieso funktioniert DAS in hl?
- wozu brauchen die DAS?

--

zum Seitenanfang zum Seitenende Profil || Suche
001
25.05.2001, 23:38
Killing Me Softly



Also bei der Gesichte handelt es sich nicht um irgendeine Rekursion, sondern um ne ganz popplige dynamische Liste.

In m_rgpPlayerItems[] steht für jeden Slot ein Zeiger auf die erste Waffe innerhalb des Slots.
Jedes CBasePlayerItem-Objekt hat einen Zeiger auf das nächste CBasePlayerItem-Objekt in der Liste (*m_pNext). Beim Letzten steht dort NULL.

--

Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

zum Seitenanfang zum Seitenende Profil || Suche