Mein Problem ist, dass der Pointer Interpreters nach der Zuweisung trotzdem nicht auf den selben Speicherbereich zeigt wie die der Funktion übergebenen Variable "interp". Ich weiss aber nicht, wieso das so ist. Ich möchte einfach, dass "Interpreters" auf die selbe Variable zeigt wie "interp", nachdem die Funktion aufgerufen wurde. Für Hilfe bin ich sehr dankbar!
Zu wenig Infos. Ist in deinem Beispiel Zeile 1 das interpreters identisch mit dem "this->interpreters", wie vergleichst du die Zeiger, ...
Kannst du ein minimales kompilierbares Beispiel posten? Und bitte auch artikulieren, was du bekommst und was du haben willst!
Ansonsten: Einen Container nicht auf dem HEAP, außer du weißt genau dass du es brauchst und es auch nicht anders geht! Bei dir nicht der Fall. Was willst du genau erreichen? Kann man das nicht auch mit Kopieren des Container erreichen? Du hast ja eh schon Zeiger im Container, da ist eine Kopie ruckzuck erledigt, und die Zeiger darin zeigen immer noch auf die selben Objekte.
Und muss denn gleich der ganze Container kopiert werden? Kannst du deiner Klasse nicht eine Schnittstelle zum Einfügen und Suchen von Interpretern verpassen, so dass du nicht die Kontrolle über den QList<Interpreter*>-Member hergeben musst?
Sorry, ich dachte, das Beispiel würde für sich sprechen.
Ja, "this->interpreters" und die Variable interpreters aus der 1. Zeile sind identisch.
Was meinst du mit Vergleichen der Zeiger? Ich möchte den der Funktion übergebenen Zeiger der Variablen interpreters übergebene, ich möchte nichts vergleichen.
Die QList habe ich schon mit guten Gründen auf dem Heap, aber das ist ja für das Beispiel absolut nicht relevant.
Mit Schnittstellen möchte ich in diesem Fall nicht arbeiten, da die Handhabung der Daten so wie ich es habe einfacher und logischer ist.
Ich möchte mit dem Codebeispiel erreichen, dass die Variable(/Pointer) interpreters nach dem Aufruf auf den selben Speicherbereich zeigt wie die übergebene Variable interp. Dies ist aber nicht so, sie zeigen auf verschiedene Adressen und genau dies verstehe ich nicht, eigentlich müssten sie doch auf die selbe Adresse zeigen, oder nicht?