ich moechte einen string in einer Unterfunktion veraendern und an das Hauptprogramm zurückgeben. Wenn ich das wie folgt mache, hat name am Ende immer noch den Wert "iniName".
Waere fuer alle Vorschlaege dankbar.
C++:
main() { char *name = "iniName";
readNewName(name); }
readNewName(char *name) { name = "newName"; }
Bearbeitung von loddab:
cpp-Tags gesetzt
Dieser Post wurde am 05.02.2004 um 10:30 Uhr von loddab editiert.
du musst dann aber mit buffer-overflows aufpassen...Es dürfen in diesem Fall keine Namen mit mehr als 7 Zeichen verwendet werden, an sonsten musst du dir halt entsprechend mehr speicher allokieren.... -- ...fleißig wie zwei WeißbroteDieser Post wurde am 05.02.2004 um 10:53 Uhr von Windalf editiert.
Du musst ein array nur mit free löschen, wenn du vorher speicher mit malloc (o.ä) allokiert hast, sonst nicht. Delete benutzt man meines wissens nur in C++, aber da würdest du ja eh mit std::string arbeiten. -- All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
ist so ein sonderfall weil du ja eignetlich auf was zeigst was es gar nicht gibt... der legt den speicher dafür selber an und macht da glaub ich ein const draus... Im zweifel virtual fragen...
auf jeden fall wenn du ein array erstellst ist der arrayname ein zeiger(pointer) aufs erste element der arrays.... -- ...fleißig wie zwei Weißbrote
-- All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)Dieser Post wurde am 05.02.2004 um 12:50 Uhr von loddab editiert.
oder du lässt den "using namespace std" weg und rufst das expliziet wie in meinem beispiel auf also std::cout und std::string usw... -- ...fleißig wie zwei WeißbroteDieser Post wurde am 05.02.2004 um 14:10 Uhr von Windalf editiert.