Hallo,
ich verwende in meiner Anwendung einen Pointer auf eine QList:
QList<class> *m_list = new QList<class>
Der Pointer wird in verschiedene Funktionen und Klassen weitergegeben, damit ich immer Zugriff auf die gleiche Liste habe. Zur Laufzeit kommen Elemente zur Liste hinzu und werden gelöscht. Muss ich mir sorgen machen, dass der Pointer irgendwann auf eine andere Adresse zeigt, da der Speicher an der ursprünglichen Adresse nicht mehr ausreicht?
Ich kenne z.B. von Pointer auf arrays, dass diese immer auf der erste Element des arrays zeigen. Ich stelle mir nun 2 Arrays vor, die direkt aufeinander folgen im Speicher. Wenn man die Größe des 1. Arrays ändern würde, dann hätten die letzten Elemente des ersten Arrays und die ersten Elemente des zweiten Arrays gleiche Adressen. Wäre also problematisch.
Könnt ihr mir sagen, ob das bei QList unkritisch ist? Ich stelle mir das dort ähnlich vor. Allerdings habe ich die Hoffnung, dass die QList deutlich schlauer ist und das besser verwaltet. Aber irgendwo müssen zusätzlich Elemente ja gespeichert werden.....
Könnt ihr mir die Frage beantworten und evtl. das Thema noch etwas erläutern? Bzw. auch gerne entsprechende Links zu Erklärungen schicken....
Danke im voraus!
Kann sich ein Pointer auf eine QList ändern?
-
- Beiträge: 43
- Registriert: 23. Juli 2017 12:35
-
- Beiträge: 2
- Registriert: 19. Februar 2021 20:28
Re: Kann sich ein Pointer auf eine QList ändern?
Ich ahne zu wissen, was Du meinst, allerdings sehe ich bei Deiner Verwendung eines QList-Zeigers keine Bedenken,freakonaleash99 hat geschrieben: ↑17. Februar 2021 18:30 Hallo,
ich verwende in meiner Anwendung einen Pointer auf eine QList:
QList<class> *m_list = new QList<class>
Der Pointer wird in verschiedene Funktionen und Klassen weitergegeben, damit ich immer Zugriff auf die gleiche Liste habe. Zur Laufzeit kommen Elemente zur Liste hinzu und werden gelöscht. Muss ich mir sorgen machen, dass der Pointer irgendwann auf eine andere Adresse zeigt, da der Speicher an der ursprünglichen Adresse nicht mehr ausreicht?
Ich kenne z.B. von Pointer auf arrays, dass diese immer auf der erste Element des arrays zeigen. Ich stelle mir nun 2 Arrays vor, die direkt aufeinander folgen im Speicher. Wenn man die Größe des 1. Arrays ändern würde, dann hätten die letzten Elemente des ersten Arrays und die ersten Elemente des zweiten Arrays gleiche Adressen. Wäre also problematisch.
Könnt ihr mir sagen, ob das bei QList unkritisch ist? Ich stelle mir das dort ähnlich vor. Allerdings habe ich die Hoffnung, dass die QList deutlich schlauer ist und das besser verwaltet. Aber irgendwo müssen zusätzlich Elemente ja gespeichert werden.....
Könnt ihr mir die Frage beantworten und evtl. das Thema noch etwas erläutern? Bzw. auch gerne entsprechende Links zu Erklärungen schicken....
Danke im voraus!
allerdings musst Du sicherstellen, das Du nicht an verschiedenen Stellen gleichzeitig(via Threads) auf das QList-Objekt zugreifst.
-
- Beiträge: 43
- Registriert: 23. Juli 2017 12:35
Re: Kann sich ein Pointer auf eine QList ändern?
Danke für dein Antwort.
Es scheint auch zu funktionieren... Ich war mir nur eben nicht sicher, ob das nach längerer Laufzeit (und dadurch größer werdende Liste) entstehen kann.
Hab auch drüber nachgedacht, einfach ein const zu setzen - dann dürfte ja sowieso nichts passieren.
also const QList<class> *m_list = new QList<class>
Es scheint auch zu funktionieren... Ich war mir nur eben nicht sicher, ob das nach längerer Laufzeit (und dadurch größer werdende Liste) entstehen kann.
Hab auch drüber nachgedacht, einfach ein const zu setzen - dann dürfte ja sowieso nichts passieren.
also const QList<class> *m_list = new QList<class>