抄了个动态内存分配的例子,但不能运行。。。。。
程序代码:#include < stdio.h >
#include < stdlib.h >
int
compare_integers ( void const *a, void const *b )
{
register int const *pa = a;
register int const *pb = b;
return *pa > *pb ? 1 : *pa < *pb ? -1 : 0;
}
int
main ( )
{
int *array;
int n_values;
int i;
printf ( "How many values are there?" );
if ( scanf ( "%d", &n_values ) != 1 || n_values <= 0 )
{
printf ( "Illegal number of values.\n" );
exit ( EXIT_FAILURE );
}
array = malloc ( n_values * sizeof ( int ) );
if ( array == NULL )
{
printf ( "Can't get memory for that many values.\n" );
exit ( EXIT_FAILURE );
}
for ( i = 0; i < n_values; i += 1 )
{
printf ( "?" );
if ( scanf ( "%d",array + i ) != 1 )
{
printf ( "Error reading value #%d\n", i );
free ( array );
exit ( EXIT_FAILURE );
}
}
qsort ( array, n_values, sizeof ( int ), compare_integers );
for ( i = 0; i < n_values; i +=1 )
printf ( "%d\n", array [i] );
free ( array );
return EXIT_SUCCESS;
}









