zeiger zuweisen - EAccesViolation
-
Hi erstmal,
Also ich weiss dass es dazu schon ein paar beiträge gab, kam aber in keinem richtig eine (für mich brauchbare) Lösung raus.
Ich versuche im Konstruktor einer selbstgeschriebenen Klasse einen Zeiger auf ein Objekt eines Datenmoduls zuzuweisen und bekomme eine EAccesViolation
TIBDataSet *cdata = NULL; cdata = DataModule1->CicData;Meine Vermutung ist, da eine Instanz der Klasse im Konstruktor des Hauptformulars erzeugt wird, dass die Instanz vor dem DatenModul "erstellt"
wird und so der zeiger ins "leere geht"(ich sollte Fachwörter nachlernen :))
Liege ich damit richtig? und wie kann ich das ändern ich würde das nur ungern aus dem konstruktor rausnehmen, da ich schon bei start der anwendung zugriff brauche.
Bzw: wie kann ich erzwingen, dass dass datenmodul zuerst "erstellt" wird
-
harhar schon gelöst
grad als ich die frage gepostet habe kam mir die idee.
ich erzeige jetzt die instanz meiner klasse einfach im konstruktor des Datenmoduls.
es lag also tatsächlich daran dass das datenmodul noch nicht existiert hat als der zeiger zugewisen war.
ich bin genial
-
∞
-
Hallo
@auer86 : sicher sollte man solche Pointer mit gültigen Werten füllen. In dem vom patata geschriebenen Beispiel ist es in der Tat besser, gleich direkt in einer Zeile zuzuweisen.
Aber du kannst Zeiger auch mit NULL initialisieren, als Marke das der Zeiger (noch) auf keine gültige Instanz zeigt./Edit : auer86 hat seine Frage gelöscht.
bis bald
akari