Hallo (nochmal),
bei mir existiert ein kleines Problem mit std::vector. Vorher hatte ich ja gemeint, das alles einwandfrei klappt, das tut es aber nur, wenn ich keine Variable zum einfuegen von Daten verwende. Folgendes Beispiel:
std::vector<char*> FileIO::GetSection(char p1[6], char p2[6]) // gibt vector zurueck { std::vector<char*> lines; lines.push_back("contents ::"); //funktioniert char k[30]="Hallo du da!"; lines.push_back(k); // funktioniert nicht richtig return lines; }
Die Liste kommt aber so zurueck: contents :: Ôl@ôÿ¿j«
Und da komm ich nicht mehr mit... :(
Weiss evtl. jemand von euch, was ich falsch mache?
Danke,
Sebastian
On Thu, Aug 01, 2002 at 01:52:39PM +0200, Sebastian Roth wrote:
std::vector<char*> FileIO::GetSection(char p1[6], char p2[6]) // gibt vector zurueck { std::vector<char*> lines; lines.push_back("contents ::"); //funktioniert char k[30]="Hallo du da!"; lines.push_back(k); // funktioniert nicht richtig return lines; }
Die Liste kommt aber so zurueck: contents :: Ôl@ôÿ¿j«
Du stopfst ja auch Pointer in den vector und keine Strings. Der erste ist eben bei Deinem Compiler auch noch nach dem Beenden der Funktion noch da (muß er aber auch nicht (IMHO). Der zweite ist ein Array, der nach dem Beenden definitiv weg ist. Benutze doch statt irgendwelcher Pointer std::vectorstd::string, das sollte auf jeden Fall klappen, denn dann werden wirklich die Strings selbst im vector gespeichert und nicht nur die Pointer darauf.
HTH, Eric
On Thursday 01 August 2002 14:47, Eric Schaefer wrote:
On Thu, Aug 01, 2002 at 01:52:39PM +0200, Sebastian Roth wrote:
Die Liste kommt aber so zurueck: contents :: Ôl@ôÿ¿j«
Du stopfst ja auch Pointer in den vector und keine Strings. Der erste ist eben bei Deinem Compiler auch noch nach dem Beenden der Funktion noch da (muß er aber auch nicht (IMHO). Der zweite ist ein Array, der nach dem Beenden definitiv weg ist.
*merk* Da muss ich wieder meine Kenntnisse ueber Pointer auffrischen. Bestimmte Kapitel sollte ich eben mehrmals lesen...
Benutze doch statt irgendwelcher Pointer std::vectorstd::string, das sollte auf jeden Fall klappen, denn dann werden wirklich die Strings selbst im vector gespeichert und nicht nur die Pointer darauf.
das klappt jetzt aber endlich ;). Ich hab alle std::vector<char*> durch std::vectorstd::string ersetzt und siehe da, es klappt ;). Danke vielmals!
HTH, Eric
Sebastian
lug-dd@mailman.schlittermann.de