I wrote a compare function for qsort. I tested version 1 and version
2 (below). Version 1 worked but version 2 did not work. Why?
/*
* Version 1
* Compare two numbers, used in qsort.
*/
int compare(const void *a, const void *b)
{
int *val1, *val2;
val1 = (int *) a;
val2 = (int *) b;
return (*val1 *val2) ? -1 : ((*val1 < *val2) ? 1 : 0);
}
/*
* Version 2
* Compare two numbers, used in qsort.
*/
int compare(const void *a, const void *b)
{
int *val1 = (int *) a, *val2 = (int *) b;
return (*val1 *val2) ? -1 : ((*val1 < *val2) ? 1 : 0);
}
2 (below). Version 1 worked but version 2 did not work. Why?
/*
* Version 1
* Compare two numbers, used in qsort.
*/
int compare(const void *a, const void *b)
{
int *val1, *val2;
val1 = (int *) a;
val2 = (int *) b;
return (*val1 *val2) ? -1 : ((*val1 < *val2) ? 1 : 0);
}
/*
* Version 2
* Compare two numbers, used in qsort.
*/
int compare(const void *a, const void *b)
{
int *val1 = (int *) a, *val2 = (int *) b;
return (*val1 *val2) ? -1 : ((*val1 < *val2) ? 1 : 0);
}
Comment