why is this giving me segmentation 
char *token;
token = strtok(line, " ");

if (token != NULL && token[0] == '\t') {
    a = malloc(sizeof(Action));
    char **arg = malloc(sizeof(char *) * MAXLINE);
    int i = 0;

    while (token != NULL) {
        arg[i] = strdup(token);
        token = strtok(NULL, " ");
        i++;
    }
    a->args = arg;
    a->next_act = NULL;
    int j = 0;

    while (arg != NULL) {
        printf("%s\n", arg[j]);
        j++;
    }
}