einfach verkettete Listen
-
Ich hab ein kleines Problem mit folgendem Programm:
dekl:
#include <iostream> #include <conio> class Klasse; class Klasse { private: struct Knoten { int Inhalt; Knoten *pNext; }; Knoten *pFirst; Knoten *pLast; int Anzahl; public: Klasse(); ~Klasse(); void vorneeinfuegen(int obj); };impl:
#include "dekl.h" Klasse::Klasse() { Anzahl=0; pFirst=pLast=NULL; } Klasse::~Klasse() { Knoten *ptemp = pFirst; for(; Anzahl>0; Anzahl--) { pFirst = pFirst->pNext; delete ptemp; ptemp = pFirst; } } void Klasse::vorneeinfuegen(int obj) { if(Anzahl == NULL) { pFirst = new Knoten; pFirst->Inhalt = obj; pFirst->pNext = NULL; pLast = pFirst; } else { Knoten *pNew = new Knoten; pNew->Inhalt = obj; pNew->pNext = pFirst; pFirst = pNew; } Anzahl++; }main:
#include "impl.cpp" #pragma hdrstop #pragma argsused int main(int argc, char* argv[]) { Klasse k; k.vorneeinfuegen(1); k.vorneeinfuegen(2); getch(); return 0; }Immer wenn ich in der main mit "k.vorneeinfuegen()" einen neuen Knoten erstellen will, stürzt der Compiler mit der Fehlermeldung "EStackOverflow" ab. Woran liegt das?
thx im voraus

-
Also ich hab eigentlich kein Problem gesehen. Du solltest aber auf jeden fall
if(Anzahl == NULL)mit
if(Anzahl == 0)oder
if(!Anzahl)ersetzen, da man NULL im allgemeinen für Zeiger verwendet, und das doch etwas verwirren könnte
Auch beim testen mit dem g++ stürzt das bei mir nicht ab.
Das Problem muss an einer anderen stelle liegen.
BR
evilissimo
-
okay - danke
