Gast
#5672625
Hallo Ich lese gerade ein Buch ueber dynamische Speicher malloc(). Ich habe alle wichtigen Dateien angehaengt. Mich interessiert lediglich das mit dem strdup(). Ich habe einen struct insel. Dann 2 Funktionen anzeigen und erstellen. Auf dem vorletzten Bild sieht man wie 2 Inseln erzeugt werden, sprich 2 pointer. Was ich nicht verstehe ist, warum ich den Namen damit ueberschreibe und anstatt den Namen des Array strings die strdup() funktion nutzen muss. Ich mache mit der Zuweisung des Namens mittels name eine call by refence. Also handelt es sich nicht um eine Kopie. Aber warum wird der Name eigentlich ueberschrieben? Denn ich erstelle doch 2 verschiedene Pointer, die jeweils auf 2 verschiedene Pointer/Adressen zeigen, die von der malloc zurueckgegeben wird. Oder gibt mir malloc jedes mal einen Pointer zurueck der auf die gleiche Adresse zeigt? Wenn die Adresse von p-insel0 4.000.000 ist und die von p-insel1 4.500.000 ist frage ich mich warum i->name auf die selbe adresse zeigen. Bitte um Hilfe



