C++函数返回双指针有什么问题?

6

我似乎无法弄清楚我的函数出了什么问题......我需要向用户询问一个价格,然后将其作为双指针返回,但是我得到了大量的错误:

double* getPrice()

{

    double* price;

    cout << "Enter Price of CD: " << endl;

    cin >> &price;



    return price;

}
1个回答

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;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接