use*_*514 6 c++ pointers function-pointers function
我似乎无法弄清楚我的功能有什么问题....我需要询问用户的价格,然后将其作为双指针返回,但我得到了大量的错误:
double* getPrice()
{
double* price;
cout << "Enter Price of CD: " << endl;
cin >> &price;
return price;
}
Run Code Online (Sandbox Code Playgroud)
Jar*_*Par 10
为了使用任何类型的指针,它需要指向有效的内存.现在你有一个未初始化的指针并指向垃圾.请尝试以下方法
double* price = new double();
Run Code Online (Sandbox Code Playgroud)
另外你需要将cin传递给a double而不是a double**.
cin >> *price;
Run Code Online (Sandbox Code Playgroud)
请注意,这将在您的进程中分配新内存,必须在以后释放.即由getPrice的调用者.例如
double* p = getPrice();
...
delete p;
Run Code Online (Sandbox Code Playgroud)
理想情况下,在这种情况下,您根本不应该分配指针,因为它会引入不必要的内存管理开销.更容易实现如下
double getPrice() {
double price;
cout << "Enter Price of CD: " << endl;
cin >> price;
return price;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1982 次 |
| 最近记录: |