if(isdigit(*argv[index])){...}
argv is char **, so *argv[index] is just char type, which can be converted to int implicitly.
But argv[index] is char * type, to convert to int, you need to convert explicitly.
solved Difference between *argv[index] (char**) and argv[index] (char*) passed to isdigit(int) [closed]