C/Visual C - Formación de estructuras y float

 
Vista:

Formación de estructuras y float

Publicado por Gerónimo (2 intervenciones) el 18/09/2003 02:01:48
Copiando un ejemplo de un libro me encuentro con que hay un problema relacionado con el tipo de datos float y las estructuras. El código simplificado es:
#include<stdio.h>
main()
{
struct prueba{
float valor;
} varprueba[10];
int i;
for (i=0;i<10;++i){
printf(\"Valor de varprueba[%d].valor: \",i);
scanf(\"%f\",&varprueba[i].valor);
printf(\"Varprueba[%d].valor= %f\\n\",i,varprueba[i].valor);
}
return (0);
}
Cuando se corre este programa dá el error: \'floating point formats not linked abnormal program termination\'. Si en el código se define varprueba.valor como int (y se hacen los cambios correspondientes para procesar el valor como int) el programa se ejecuta sin errores. ¿Hay acaso un tratamiento especial para el tipo de datos float con una formación de estructuras?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Formación de estructuras y float

Publicado por Javier Albornoz (59 intervenciones) el 19/09/2003 14:28:47
Hola:
No sabría decirte si es o no un bug del compilador o quizás un seteo en particular de la forma de compilar. Tambien me pasó en TC++
Bueno podes solucinarlo así:
char CadValor[ 10] ;
:
for(
:
....gets( CadValor ) ;
....varprueba[ i ].valor = atof( CadValor ); // stdlib.h
}

o tambien....(más simple)

float Valor ;
:
for(
:
....scanf( "%f ", &Valor );
....varprueba[ i ].valor = Valor
}

Suerte...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias

Publicado por Gerónimo (2 intervenciones) el 23/09/2003 20:16:26
Gracias por la respuesta.
Se solucíonó el problema haciendo lo que indicaste. Pareciera que se trata de un error de los compiladores, yo estaba utilizando Borland C++.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar