Through trial and error I managed to get the following string comparison function to work with qsort() as I intended but I don't really understand why the asterisk is needed in the (const char\*) cast expression. Can someone please dissect and explain:-

```
int strCompare(const void *a, const void *b) {
    return strcmp((const char*)a, (const char*)b);
} 

```

Appendix:-

```
void findStrings(int * optionStats, char strings[][MAX_STRING_SIZE + 1], int numStrings)
{
    qsort(strings, numStrings, 21*sizeof(char), strCompare);
}

```

Is there a way of eliminating the call to strcmp() through strCompare() and just using strcmp() as the parameter to qsort() instead?