why is there a segfault when this function is called by the program
Rule *create_rule(char *target) {
    Rule *new_rule = malloc(sizeof(Rule));  // Allocate space for a rule
    if (new_rule == NULL) {                 // Error checking
        perror("malloc");
        exit(1);
    }

    strcpy(new_rule->target, target);  // Set the target
    new_rule->next_rule = NULL;        // Set the next_rule
    new_rule->dependencies = NULL;
    new_rule->actions = NULL;
    return new_rule;  // Return the new rule
}