static void compare_sorts2 (void *base, size_t nel) { size_t len = nel * sizeof (teststruct_t*); void *b1 = malloc (len); void *b2 = malloc (len); memcpy (b1, base, len); memcpy (b2, base, len); qsort (b1, nel, sizeof (teststruct_t*), compare_teststructs2); qsort_test_struct (b2, nel); assert (!memcmp (b1, b2, len)); free (b1); free (b2); }
static void compare_sorts2 (void *base, size_t nel) { size_t width = sizeof (teststruct_t*); size_t len = nel * width; void *b1 = malloc (len); void *b2 = malloc (len); memcpy (b1, base, len); memcpy (b2, base, len); qsort (b1, nel, sizeof (teststruct_t*), compare_teststructs2); qsort_test_struct ((teststruct_t **)b2, nel); for (size_t i = 0; i < nel - 1; ++i) assert (compare_teststructs2 ((char *)b2 + i * width, (char *)b2 + (i + 1) * width) <= 0); free (b1); free (b2); }