#include "./person.h" #include "./person_private.h" #include #include Person *person_new(const char *name) { if (name == NULL) { return NULL; } Person *p = (Person *)malloc(sizeof(Person)); if (p == NULL) { return NULL; } size_t name_len = strlen(name); char *p_name = malloc(name_len + 1); // +1 for null terminator. if (p_name == NULL) { free(p); return NULL; } strncpy(p_name, name, name_len); p->name = p_name; return p; } const char *person_get_name(Person *p) { if (p == NULL) { return NULL; } return p->name; } int person_delete(Person *p) { if (p == NULL) return 0; free(p->name); free(p); return 1; // It worked :) }