Grundlagenproblem dynamische Objekt-Erzeugung
-
Hi,
stellt euch bitte vor, dass ich unenedlich viele Zeilen in einer Tabelle als Objekte haben möchte, die alle beliebig wiederum viele Daten haben können (in einer Tabelle in der ersten Spalte nen Wert, in der zweiten Spalte nen wert, etc.).
Daher habe ich für das Objekt "Zeile" eine Klasse entsprechend definiert. Nun möchte ich aber zu jeder Zeit im Nachhinein auf die einzelnen Zeilen zugreifen können. Wenn ich diese als einzelne Objekt erstelle, hab ich Probleme. Wenn ich diese als Felder erzeuge, ist die Anzahl der Zeilen begrenzt. Hier mein Versuch des Zugriffs auf unendlich viele Zeilen (theoretisch):
[cpp]class index
{
private: int line;
char* a;
char* b;
char* c;
public: index( char* i_a, char* i_b, char* i_c );
void Change( int line, char* i_a, char* i_b, char* i_c );
void Ausgeben( int i );
};
//---------------------------------------------------------------------------void table::NewIndex( int line, char* i_nameA, char* i_nameB, char* i_nameC )
{
index* _index[ line ]; // GEHT NICHT, will aber später ja irgendwie auf ganz bestimmte Zeilen zugreifen können!!
_index[ line ] = new index( i_nameA, i_nameB, i_nameC ); // Speicher reservieren
_index[ line ]->Ausgeben( line );
delete i1; // Speicher freigeben
}
//---------------------------------------------------------------------------[/cpp]Mfg, wär nett wenn ihr mir helfen könnt
-
Was ist il?
Gibt es _index in der Table-Klasse?index* _index[ line ];
ist temporär und wird am Ende der Funktion wieder gelöscht.
Wenn du dem jetzt mit new einen Wert zuweist und nicht mit delete wieder freigibts wird der Pointer zerstört und du hast ein Speicherloch!mfg
Glamdring