Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » STL vector - Probleme mit vector <char *>

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
19.12.2005, 10:49 Uhr
~blablabla
Gast


Hi,
mal eine kleine Anfängerfrage. Ich habe einen vector<char *>.

In einer funktion, die einen char * als Parameter besitzt, wird der uebergebene Parameter in den Vector mit push_back() geschrieben- etwa so:

void test(char * test){
this->myVector.push_back(test);
cout << "Ausgabe: " << myVector[myVector.size()-1] << endl; //ok
}

Der Vector ist Member dieser Klasse und die Funktion wird von einer anderen Klasse gerufen. Wenn ich danach irgendwann wieder auf das eben eingefügte Vectorelement zugreifen will, gibts es Segementation Faults...Woran liegt das und was muß ich tun??

Liegt es daran, dass ich in den Vector einen Zeiger packe, dessen Speicherbereich nach dem Methodenaufruf ungültig wird, weil dieser Zeiger ja nur ein lokaler Parameter ist????

Vielen Dank für jede Antwort!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.12.2005, 10:52 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat von ~blablabla:

Liegt es daran, dass ich in den Vector einen Zeiger packe, dessen Speicherbereich nach dem Methodenaufruf ungültig wird, weil dieser Zeiger ja nur ein lokaler Parameter ist????


Ja, so ist es.
Damit dürfte auch die Lösung des Problems klar sein.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.12.2005, 11:05 Uhr
~Guest
Gast



Zitat von virtual:
[quote ~blablabla]
Liegt es daran, dass ich in den Vector einen Zeiger packe, dessen Speicherbereich nach dem Methodenaufruf ungültig wird, weil dieser Zeiger ja nur ein lokaler Parameter ist????


Ja, so ist es.
Damit dürfte auch die Lösung des Problems klar sein.[/quote]
Hm, kannst Du sie bitte trotzdem nochmal posten?

Danke :-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.12.2005, 11:34 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Hallo... guck dir mal std::string an damit hast du das problem nicht, das du selber speicher allokieren musst (und auch später wieder freigeben)


C++:
std::vector<std::string> mystringarray;


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: