why doesn't the if statement ever give true
int n = fork();
if (n == 0) {
    char *buffer = malloc(sizeof(char) * MAXLINE);
    buffer = args_to_string(act_ptr->args, buffer, get_size(act_ptr->args));
    printf("%s\n", buffer);
    printf("^^^^^^^^^^^^\n");
    execvp(act_ptr->args[0], act_ptr->args);
    perror("execvp");
    exit(1);
}