String array zurückgeben
-
Hallo zusammen,
ich habe eine Funktion geschrieben, die einen String auseinanderparst.
CString *parser(char *str) { ... CString *strSearchWords[4]; ... return strSearchWords[4]; }ich will nun nachdem diese funktion aufgerufen wird einen String-Array zurück geben. Nur schaffe ich das irgendwie nicht.

Was gibt es sonst noch für Möglichkeiten einen String-Array zurückzugeben?Thx schonmal im voraus!
-
Hallo
Benutzt doch einfach die Klasse CStringArray.
chrische
-
Du hast dort ein Array mit 4 CString-Pointern angelegt - die haben die Indizes 0 bis 3. strSearchWords[4] gehört nicht mehr zu deinem Array.
-
Also ich hab das jetzt so gemacht:
CStringArray parser(char *str) { CStringArray strSearchWords; strSearchWords.SetSize(4); ... // füllen strSearchWords.SetAt(0, buf2); ... return strSearchWords; } int main() { CStringArray array; array.SetSize(4); array = parser(buffer); return 0; }Also irgendwas mach ich noch falsch? Ich komm einfach nicht drauf. Hier sind die Compilerfehler:
test.cpp WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server) test.cpp(64) : error C2558: class 'CStringArray' : no copy constructor available or copy constructor is declared 'explicit' test.cpp(79) : error C2582: 'operator =' function is unavailable in 'CStringArray'danke für die antworten.
-
CStringArray ist afaik nicht kopierbar, also kannst du es höchstens per Referenz herumreichen:
void parser(const char* text,CStringArray& result) { result.SetSize(4); ... } CStringArray array; parser(buffer,array);(oder noch besser, du nutzt Standard-Mittel:
std::vector<std::string>)
-
Hallo
CStoll schrieb:
[/cpp](oder noch besser, du nutzt Standard-Mittel:
std::vector<std::string>)Wenn man mit den MFC arbeitet ist das imho nicht immer besser, weil es dann schon Sinn macht, auch mit den angebotenen Klassne zu arbeiten.
chrische