Считывать новые данные в параметры указателя внутри функции?

#c #function #pointers #parameters

#c #функция #указатели #параметры

Вопрос:

Я создаю программу, которая позволяет пользователям вводить данные о планете. В этой функции у меня должно быть 3 параметра указателя, чтобы я мог передавать указателям адреса переменных, объявленных вне функции, затем использовать scanf для считывания данных по этим адресам (в форме параметров указателя).

Программа компилируется, но программа вылетает, когда я ввожу новые данные о планете: (

 void new_planet_data(double *temp_mass, double *temp_radius,    double * temp_density)
{


    printf("Enter the planet's mass (earth = 5.9736e24): ");
    scanf("%lf",amp;temp_mass);

    printf("Enter the planet's radius (earth = 6.37101e6): ");
    scanf("%lf",amp;temp_radius);

    printf("Enter the air density (earth = 1.2):");
    scanf("%lf",amp;temp_density);

    planet_mass = *temp_mass;

    planet_radius = *temp_radius;

    planet_density = *temp_density;


}
  

Комментарии:

1. Итак, вы пробовали запускать свою программу в отладчике?

Ответ №1:

temp_x Переменные уже являются указателями, поэтому нет необходимости использовать amp; оператор в scanf .