#include #include typedef struct person_t { char *name; unsigned int age; } person_t; person_t * person_new(const char *name, unsigned int age) { person_t *self = malloc(sizeof(person_t)); self->name = strdup(name); self->age = age; } const char * person_name(person_t *self) { return self->name; } unsigned int person_age(person_t *self) { return self->age; } void person_free(person_t *self) { free(self->name); free(self); }