Es sollte ja auch nicht so werden, in dem Fall habe ich versucht durch try and error auf die Lösung zu kommen. Die scheinbare Lösung, hat sich nun auch als Error entpuppt. Ich muss mir das mit den Zeigern wieder ansehen, ein paar Wochen nichts programmiert und schon vergesse ich manche Details wieder.Xin hat geschrieben: Moment... lies, was Du da schreibst. Wenn Du einem bestehendem Objekt einen Basispointer zuweisen willst, hast Du schon im Konzept etwas falsch gemacht. Das ist als würdest Du eine Stadt mit einem Wegweiser gleichsetzen. Ein Wegweiser ist aber keine Stadt.
Weiterhin hast Du einen Pointer, den Du nicht initialisiert hast. Du hast also nur einen Wegweiser, der ins nichts zeigt. Und nur weil Du dann eine Stadt ins Nirwana schickst, hast Du den Wegweiser nicht beschriftet.

Besten Dank, genau das ist die Lösung die ich suche, auch wenn es eigentlich ganz banal ist.Xin hat geschrieben: Du musst den Pointer auf das Objekt initialisieren, statt das Objekt ins Nirwana zu kopieren, wo der Pointer derzeit hinzeigt.(ich habe den Code jetzt nicht hier, um die Namen der Variablen anzupassen)Code: Alles auswählen
basepointer = &IntegerObject;
Klingt auf alle Fälle nach einer interessanten Möglichkeit. Nach dem ich mich sowieso noch nicht mit Operatorenüberladung und Überschreibung beschäftigt habe, wäre es mal ganz interessant sowas zu schreiben. Ist vielleicht in einer Testsuite verwertbar, um zu überprüfen ob dynamisch angeforderter Speicher auch wieder freigegeben wurde. Welche Möglichkeiten gibt es sonst noch so, eine Programm auf Speicherlecks zu überprüfen?Xin hat geschrieben:Gibt es eine Möglichkeit in der Realität zu überprüfen, ob ein Wegweiser in die Richtung zeigt, wie er beschriftet ist?Bebu hat geschrieben:Gibt es eigentlich eine Möglichkeit zur Laufzeit zu überprüfen, ob ein Zeiger auf eine gültige Adresse zeigt? Damit meine ich keine Überprüfung, ob der Zeiger auf NULL zeigt.
Natürlich gibt es sie. Wenn Du ein GPS-Gerät hast, um Deine Position zu bestimmen, einen Kompass, eine Karte und ein Lineal, um die Richtung von Deiner Position aus in die Karte einzutragen, dann kannst Du das vor Ort überprüfen. Das geht in C++ natürlich auch - sogar automatisiert.
Du kannst operator new und operator delete überschreiben und bei new die Adresse in eine Liste eintragen und bei delete die Adresse aus der Liste entnehmen. Die Liste kannst Du dann fragen, ob Du Zugriff auf eine Adresse hast.
Das ist aufwendig - es kostet Zeit und deswegen macht es keiner. Man vertraut einfach darauf, dass niemand den Wegweiser verdreht hat.