Veränderbares 'Array' mit Zeigern - wie geht das?

Hallo!

Ich bin noch ziemlicher Laie in C++, habe aber ein wichtiges Problem:

Wie kann ich mit einer Classe (sofern möglich) ein „Array“ erzeugen, in dem jeder Datensatz aus {char* ptxt[50]; char* pprev; char* pnext;} besteht. Der Speicher soll bei bedarf alociert werden, der direkte Zeiger auf die Felder geht aber mit beenden der Funktion verloren. Der alocierte Speicher ist in der Kette aus Feldern (pprev zeigt auf vorheriges Feld, pnext auf nächstes) noch definiert, kann ausgelesen werden und auch wieder freigegeben werden. Wie muß ich die Classe definieren? Oder gibt es dafür eine alternative „Standard“-Lösung?

Besten Dank
Andaron

Hallo,

wenn ich Dich richtig verstehe, möchtest Du eine doppelt verkette Liste implementieren.

Für solche Standard-Aufgaben gibt es die STL (Standard Template Library), welche Teil des C+±Standards ist. Außerdem wird es noch jede Menge platform-/herstellerspezifische Lösungen geben…

Für die Liste gibt es in der STL das Template list:

http://www.cplusplus.com/reference/stl/list/

Hilft Dir das?

Vielen Dank,

ein super Tipp für Standard-Lösungen.
Ich werde mir die Seite noch genauer ansehen.
Gibt es noch weitere Sites wie diese?

Besten Dank nochmal
Andaron

Einführung in die STL:
http://www.sgi.com/tech/stl/

ansonsten:
Google und Wikipedia sollten hilfreiche Seiten ausspucken!

Wenn Du noch mehr „Standardlösungen“ suchst, solltest Du auch die Boost-Bibliothek kennen:
http://www.boost.org

Diese Lib enthält viele hilfreiche Sachen, welche in der STL fehlen – es ist wohl auch geplant, Teile von Boost in die STL (welche ja teil des offiziellen C+±Standards ist) zu übernehmen.

Außerdem noch der Hinweis: Eigentlich jede Entwicklungsumgebung liefert auch eine große Anzahl von Modulen/Libs mit, welche viel hilfreiche Funktionalität bieten. Wenn Du unter Windows entwickelst, solltest Du mal bei Microsoft im MSDN stöbern. Hier ein Link zur Doku von allen möglichen C+±Bibliotheken, die Microsoft mit Visual C++ liefert:
http://msdn.microsoft.com/de-de/library/52cs05fz.aspx
Damit bist Du jedoch nicht plattformunabhängig - dies ist der Vorteil von STL und Boost.