Hi,
First of all, some relevant info:
and
When I compile the following C program:
and then execute it, I get the following output:
Am I making a very stupid mistake, or perhaps qsort() simply doesn't work? (in case it's just a stupid mistake, sorry for the noise).
Saludos.
First of all, some relevant info:
Code:
$ uname -a
FreeBSD myhost 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan 3 07:46:30 UTC 2012
root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
and
Code:
$ gcc --version
gcc (GCC) 4.2.1 20070831 patched [FreeBSD]
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
When I compile the following C program:
Code:
# include <stdio.h>
# include <stdlib.h>
# include <math.h>
# define N 10
int
cmp(const void *p1, const void *p2)
{
return *(float *)p1 < *(float *)p2;
}
int
main(void)
{
float *p, *v;
v = malloc(N*sizeof(float));
for(p = v; p < v+N; p++)
*p = sin((long)p);
for(p = v; p < v+N; p++)
printf("%g\n", *p);
printf("sorted\n");
qsort(v, N, sizeof(float), cmp);
for(p = v; p < v+N; p++)
printf("%g\n", *p);
return 0;
}
and then execute it, I get the following output:
Code:
-0.335083
-0.494026
0.980917
-0.788314
0.049636
0.723425
-0.995361
0.577797
0.240014
-0.891564
sorted
-0.891564
-0.494026
0.980917
-0.788314
0.049636
0.723425
-0.335083
0.577797
0.240014
-0.995361
Am I making a very stupid mistake, or perhaps qsort() simply doesn't work? (in case it's just a stupid mistake, sorry for the noise).
Saludos.