我似乎无法弄清楚我的功能有什么问题....我需要询问用户的价格,然后将其作为双指针返回,但我得到了大量的错误:
double* getPrice()
{
double* price;
cout << "Enter Price of CD: " << endl;
cin >> &price;
return price;
}
答案 0 :(得分:10)
为了使用任何类型的指针,它需要指向有效的内存。现在你有一个未初始化的指针并指向垃圾。请尝试以下
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;
}