int main(int argc, char **argv)
{
    if (!(argc == 2 || argc == 3))
    {
        fprintf(stderr, "USAGE: count_large size [permissions]\n");
        return 1;
    }

    char *permissions[10];
    int filesize;
    int count = 0;

    scanf("%*s %*d"); // NOTE: it says to ignore directories -- so you should use the first character to determine whether it's a directory or not.

    while (scanf("%10s %*d %*s %*s %d %*s %*d %*s %*s", permissions[1], &filesize) != EOF)
    {
        if (filesize > strtol(argv[1], NULL, 10))
        {
            if (argc == 3 && check_permissions(permissions, argv[2]) == 0)
            {
                count++;
            }
            else
            { // no permissions + file size >
                count++;
            }
        }
    }
    printf("%d/n", count);
    return 0;
}
fix line 45 warning: incompatible pointer types passing 'char *[10]' to parameter of type 'char *'