Why does this compiling and executing this result in a segmentation fault?
int main(int argc, char **argv) {
    // TODO: Verify that command line arguments are valid.
    if (argc != 2) {
        return 2; //returning with code 2
    }
    // TODO: Parse arguments and then call the two helpers in sin_helpers.c
    // to verify the SIN given as a command line argument.

    int sin_number = strtol(argv[1], NULL, 10);
    int sin_array[9];

    if (populate_array(sin_number, sin_array) == 0) { //the parsed argument was a 9 digit integer
        if (check_sin(sin_array) == 0) { //in addition, if valid sin number then
            printf("Valid SIN\n");
            return 0;
        }
        else {
            printf("Invalid SIN\n");
            return 1;
        }
    }
    return 0;
}