Soy nuevo en c programación. Decidí aprender haciendo algunos de los conjuntos de problemas en el cs50 open courseware. El código siguiente genera un error de Segmentación (colapsaba) error. No puedo entender por qué. He leído un error de segmentación tiene que ver con el acceso a memoria no tiene acceso. No veo qué podría estar causando eso. Supongo que tiene que ver con los punteros. Soy nuevo a los punteros. Gracias.
#include <stdio.h>
// https://cs50.harvard.edu/x/2021/labs/1/population/
float yearly_llamas(float starting_population) {
// returns number of llamas at the end of the year
float born = starting_population / 3;
float died = starting_population / 4;
float end_of_year_pop = starting_population + born - died;
return end_of_year_pop;
}
int main(void) {
// use floats for precision
float *start_population;
float *end_population;
// set start lower limit
int start_min = 9;
// make sure input for starting population is greater than or equal to 9
do {
printf("Starting population: ");
scanf("%f", start_population);
} while (*start_population < start_min);
// get ending population, make sure greater than or equal to the starting population
do {
printf("Ending population: ");
scanf("%f", end_population);
} while (*end_population < *start_population);
// print for verification
printf("%f\n", *start_population);
printf("%f\n", *end_population);
float end_pop = yearly_llamas(*start_population);
printf("Llamas at the end of the year: %f\n", end_pop);
return 0;
}