Hi!
char out_name = new char[strlen("name")+1];
Nein so: char* out_name = new char [strlen("name")+1];
Gut, habe ich ja auch so im Code stehen! Ist wohl auf Grund der aktuellen Zeit untergegangen. Ganz erhlich frage ich mich sowie so wo darin der Unterschied liegt? Was bedeutet der * ? Mein Buch sagt mir irgendwie nichts dazu aus und suche mal im Netz nach * :)
Wenn, dann hättest du von Anfang an einen string aus der STL benutzen sollen und keinen vector. Die 1:1-Umsetzung sollte ungefähr so aussehen:
// neuen Speicherplatz reservieren char* out_name2 = new char [strlen(dir)+1]; // chars kopieren strcpy(out_name2, out_name) // alten Speicherplatz freigeben delete[] out_name; // Pointer umbiegen out_name = out_name2;
Ich hoffe, das ist richtig, was ich hier verzapfe. Ich habe schon lange kein C++ mehr benutzt und es ist sehr spät...
Ich hoffe auch :) Zumindest scheint es zu funktionieren! Gruß Frank