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