remove potential segmentation fault
Rule *create_rule(const char *target, Rule **starting_rule) {
    printf("Creating a new rule.\n");
    Rule *new_rule = malloc(sizeof(Rule));
    if (new_rule == NULL) {
        perror("malloc");
        exit(1);
    }
    new_rule->target = "";
    strcpy(new_rule->target, target);
    new_rule->dependencies = NULL;
    new_rule->actions = NULL;
    new_rule->next_rule = NULL;

    if (*starting_rule == NULL) {
        *starting_rule = new_rule;
    } else {
        Rule *current_rule = *starting_rule;
        while (current_rule->next_rule != NULL) {
            current_rule = current_rule->next_rule;
        }
        current_rule->next_rule = new_rule;
    }
    printf("Finished creating the new rule.\n");
    return new_rule;
}