Hi Frank! Frank Liebelt schrieb:
Wie wie ja bereits geklärt hatte, danke noch einmal, schreibt man dies out_name = malloc(strlen("name")+1); so in C++ char out_name = new char[strlen("name")+1];
Nein so: char* out_name = new char [strlen("name")+1]; Das Sternchen mag für dich zwar eine Kleinigkeit sein, es macht aber den gewissen Unterschied aus ;-)
Bei dieser Variante hier bin ich auf vector gestossen. out_name = realloc(out_name, strlen(dir)+1);
Damit reservierst du im Endeffekt nur Speicherplatz der Länge 'strlen(dir)+1' für die Variable 'out_name'.
Die Frage ist die Umsetzung so richtig?
char out_name = vector<char>(out_name, strlen(lib)+1);
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... Gruß, Michael