Return string
char **list_users(const User *curr) {
    // Determine the amount of memory required to be allocated.
    int memory_size = 1;
    memory_size += sizeof("User List\n");
    User *curr_m = (User *)curr;
    while (curr_m != NULL) {
        memory_size += sizeof(curr_m->name) + 2;
        curr_m = curr_m->next;
    }

    // Allocate the memory.
    char **user_list = malloc(memory_size);
    if (user_list == NULL) {
        perror("malloc");
        exit(1);
    }

    // Copy the user list into a buffer.
    char buf[memory_size];
    strcpy(buf, "User List\n");
    while (curr != NULL) {
        strcat(buf, "\t");
        strcat(buf, curr->name);
        strcat(buf, "\n");
        curr = curr->next;
    }

    // Return the list of dynamically allocated strings.
    *user_list = buf;
    return user_list;
}