Einfach verkettete Liste -> AccessViolation



  • Hi Leute,
    ich habe ein kleines Riesenproblem das mich langsam wahnsinnig macht. Ich versuche eine einfach verkettete Liste zum Laufen zu bringen. Das heißt ich habe eine Klasse erstellt, die alle Variablen enthält und versuche nun die Liste mittels pointern aufzurufen. Ich bin nicht besonders gut im erklären, hier erstmal der Code:

    main.h :

    Globale Initialisierung :
    TDESession *Anker = 0;

    void TForm1::ListenElementHinzufuegen()
    {
    	//TDESession *Sitzung;
    	TDESession *Sitzung = new TDESession;
    
    	while(Anker->nachfolger!=NULL)
    	{
    		Anker = Anker->nachfolger;
    	}
    
    	if(standardSettingsVerwenden==true) VariablenDerListeZuordnen(Sitzung);
    	//else SessionWizard(Speicher);
    
    	Sitzung->nachfolger = Anker;
    	Anker = Sitzung;
    
    	knotenanzahl++;
    	delete Sitzung;
    }
    

    Der Fehler liegt soweit ich das erkennen kann eindeutig in dieser Funktion. Zum Aufruf der "VariablenDerListeZuordnen" kommt er erst garnicht, das Programm wird schon direkt nach Start durch die Fehlermeldung EAccesViolation abgebrochen. Weiteres gibt er mir nicht zu erkennen. Scrolle ich im CPU Fenster ein wenig nach oben, steht dort "RaisedExeption". Vielleicht hilft das^^.
    Hier noch die Klasse des Konstruktors:

    session.h :

    class TDESession
    {
    	public:
    		//Viele Variablen
    
    		TDESession *nachfolger;
    		//TDESession *vorgaenger;
    };
    

    Helft mir 🙂
    Bin für alles dankbar. Nehmt mir das Brett von den Augen!
    Mit freundlichen Grüßen icestar



  • Zeile 6 Funktioniert nur, wenn Anker!=NULL ist. Sonst ist Anker->Nachfolger ne AccessViolation, weils Anker nicht gibt!

    mfg
    xXx



  • Daaaaanke, es funktioniert einwandfrei. Da wär ich selber nicht drauf gekommen :). Also nochmal vielen dank, endlich kanns weitergehen.
    MfG


Anmelden zum Antworten