Чтобы использовать любой указатель, он должен указывать на действительную память. Прямо сейчас у вас есть указатель, который не инициализирован и указывает на мусор. Попробуйте следующее
double* price = new double();
Кроме того, вы должны иметь Cin Pass на double
, а не double**
.
cin >> *price;
Обратите внимание, что это выделит новую память в вашем процессе, которая должна быть освобождена позже. А именно, вызывающей стороной getPrice. Например
double* p = getPrice();
...
delete p;
В идеале в этом сценарии вам вообще не следует выделять указатель, потому что это приводит к ненужным накладным расходам на управление памятью. Гораздо более простая реализация была бы следующей
double getPrice() {
double price;
cout << "Enter Price of CD: " << endl;
cin >> price;
return price;
}