/*--------------------------------------------------------------------------------
入力データの読み込み
read the input data
readdata.c
*--------------------------------------------------------------------------------*/
#include "RSS.h"
double *readdata( int *num )
{
int i;
double *data;
if ( num == NULL ) {
fputs( "# num is NULL\n", stderr );
return NULL;
}
if ( scanf( "%d", num ) != 1 ) {
fputs( "# cannot get the data number\n", stderr );
return NULL;
}
if ( (*num) <= 0 ) {
fputs( "# invalid data number\n", stderr );
return NULL;
}
/*--------------------------------------------------------------------------*/
data = malloc( (size_t)(*num) * sizeof *data );
if ( data == NULL ) {
fputs( "# cannot allocate memory for data\n", stderr );
return NULL;
}
/*--------------------------------------------------------------------------*/
for ( i = 0; i < (*num); i++ ) {
if ( scanf( "%lf", &data[i] ) != 1 ) {
fputs( "# cannot read the data\n", stderr );
free( data );
return NULL;
}
}
return data;
}