Hallo Experten,
ich habe eine Frage zum Verwenden von new oder eines statischen char-Arrays:
also, ich will mehrere Strings per Methode aus den Private-Variablen des Objektes auslesen.
dazu habe ich in dem aufrufenden Programm/Funktion ein char-Array mit z.B. 50 Feldteilen erschaffen und and die Methode uebergeben. In der Methode kopiere ich dann einfach per strcpy die Private Variablen in das uebergebene Feld (das ja inzwischen auf einen Pointer zerfallen ist und dessen Gre ich somit auch nicht mehr herausbekommen kann). Das Problem ist nun: was tun, wenn der Anwender meiner Klasse nur ein char-Array mit 2 Feldelementen initialisiert, das an meine Methode uebergibt und meine Methode darein dann einen String mit Laenge 20 reinkopiert. Dann bekomme ich ja Seg-Faults die ich nicht haben mag. Meine berlegung ging jetzt dahin: Im Aufrufenden Programm Vereinbare ich einen Pointer auf char (char *mein_string) bergebe den an die Methode (meineKlasse.meinemethode(*mein_string)), und die Methode legt dann mit *mein_uebergebener_string = new char[strlen(mein_private_string)] freien Speicher fuer das Feld an. Dabei sehe ich dann allerdings ein Problem: wo wird der Speicher wieder deleted? Ich mchte ja auch nicht, dasz mir nach beliebig vielen Aufrufen der Methode der Heap zugemllt ist.
Kann mir jemand helfen?
micha