Definieren Sie eine Funktion, die einen Strukturzeiger zurückgibt
Bitte tragen Sie mit mir, ich bin von anderer Sprache und Neuling zu c und lerne es vonhttp://c.learncodethehardway.org/book/learn-c-the-hard-way.html
<code>struct Person { char *name; int age; int height; int weight; }; struct Person *Person_create(char *name, int age, int height, int weight) { struct Person *who = malloc(sizeof(struct Person)); assert(who != NULL); who->name = strdup(name); who->age = age; who->height = height; who->weight = weight; return who; } </code>
Ich verstehe, dass die zweite Person_create-Funktion einen Zeiger von struct Person zurückgibt. Ich verstehe nicht ist (kann sein, weil ich aus einer anderen Sprache bin, Erlang, Ruby), warum definiert es es als
<code>struct Person *Person_create(char *name, int age, int height, int weight) </code>
nicht
<code>struct Person Person_create(char *name, int age, int height, int weight) </code>
Und gibt es eine andere Möglichkeit, eine Funktion zum Zurückgeben einer Struktur zu definieren?
Entschuldigung, wenn diese Frage zu einfach ist.