Message-ID: <002301beb1c6$025023c0$4d806ec3@marte> From: "Giuseppe Santonocito" To: Subject: Bug report Date: Tue, 8 Jun 1999 17:45:58 +0200 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 4.72.3110.5 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 Reply-To: djgpp AT delorie DOT com I think I found a bug in the qsort() function. A very simple test program follows. GCC version: 2.8.1 (DJGPP DOS porting) Compiler option: -g Computer: Pentium 200 MMX 64MB running a DOS window from within Win95 IDE: RH IDE Thank you in advance for any help and best regards. Giuseppe Santonocito Via della Manifattura 7 - 50058 Signa (FI) - Italy incom AT mclink DOT it // // bug in qsort() ? // ---------------- // // this program will produce a file OUT.TXT that is not correctly // ordered: elements of index 0 and 1499 are swapped. // #include #include void *array[2000]; int cmp_func( const void *, const void * ); main() { int i; FILE *f; // fill in the array for( i=0; i<2000; i++ ) array[i] = (void *) i; // sort the array qsort( array, 2000, sizeof(void *), cmp_func ); // write the array to a file f = fopen( "OUT.TXT", "wt" ); for( i=0; i<2000; i++ ) fprintf( f, "%4d - %d\n", i, array[i]); fclose( f ); } int cmp_func( const void * p1, const void * p2 ) { // the actual cmp_func() in the program that revealed the bug // also returns +1 and -1, of course; but it may happen that // an array is already ordered and so always returning 0 return 0; }