segmentation fault escribi�:
El programa original podr�a quedar tal que as�:
#include <stdio.h>
#include <stdio_ext.h>
#include <unistd.h>
#include <stdlib.h>
int N; /*Numero de elementos*/
int a;
char respuesta='n';
float *longitud;
int main(){
printf("number of elements? [1-100]\n");
scanf("%d",&N);
longitud = (float*)malloc(N*sizeof(float));
while(respuesta=='n'){
printf("enter element length, starting from reflector to last
director [mm]\n");
for (a=0;a<N;a++) {
printf("element number %d : ",a);
scanf("%f",(longitud+a));
}
printf("You have entered:\n");
for (a=0;a<N;a++) {
printf("element number %d : ",a);
printf("%f\n",*(longitud+a));
}
printf("is data correct? [y/n]\n");
__fpurge(stdin);
respuesta=getchar();
}
exit(0);
}
Much�simas gracias a todos por vuestras magn�ficas explicaciones. Ahora
creo que lo he entendido de una vez. En especial al se�or "segmentation
fault" por el extenso escrito. A partir de ahora andar� siempre
con cuidado con los b�fers a la hora de leer datos. Digamos que el C
est� m�s cerca del ensamblador que del BASIC :-) . El tema de los
punteros, que en un principio generaba en m� un poco de rechazo, me doy
cuenta de que tiene una potencia incre�ble y es muy elegante. Muy
elegante lo del malloc, tomar� nota. (Qu� burro yo con el float
longitud[100])..... hala, como sobra memoria....
Gracias a todos, hay veces que con las p�ginas del manual y los libros
no termina uno de tenerlo claro.
Saludos.
Ramiro.