#include #include #include typedef struct { char* vorname; char* nachname; } name; name* createName(char* vorname, char* nachname); void printName(name* n); void freeName(name* n); int main(void) { name* person = createName("Sheeva", "Plug"); printName(person); freeName(person); return 0; } name* createName(char* vorname, char* nachname) { name* rv = (name*) malloc(sizeof(name)); rv->vorname = (char*) malloc(strlen(vorname)+1); rv->nachname = (char*) malloc(strlen(nachname)+1); strncpy(rv->vorname, vorname, strlen(vorname)); strncpy(rv->nachname, nachname, strlen(nachname)); rv->vorname[strlen(vorname)] = 0; rv->nachname[strlen(nachname)] = 0; return rv; } void printName(name* n) { printf("%s %s\n", n->vorname, n->nachname); } void freeName(name* n) { free(n->vorname); free(n->nachname); free(n); }