В функции FL_firstInts
вы выделили неинициализированный объект типа node_f
node_f *res=(node_f*)malloc(sizeof(node_f));
Так что следующий оператор
res=res->fnext;
уже вызывает неопределенное поведение.
Функция может быть определена, по крайней мере, следующим образом:
node_f * FL_firstInts( int n )
{
node_f *head = NULL;
node_f **current = &head;
`
for ( int i = 0; i < n; i++ )
{
*current = malloc( sizeof( node_f ) );
( *current )->fval = i;
( *current )->fnext = NULL;
current = &( *current )->fnext;
}
return head;
}
Th функция FL_show
имеет ту же ошибку и, кроме того, параметр label
не используется.
Функция может быть определена как
void FL_show( const node_f *head, const char *label )
{
if ( label ) puts( label );
for ( int i = 0; list != NULL; list = list->fnext )
{
printf( "%d: %f\n", i, f->fval );
i++;
}
}