通过引用使用const int创建静态数组

时间:2019-01-16 20:17:38

标签: c++

我试图在pi_sequence中创建一个双精度数组,然后返回一个指向它的指针。然后我要打印出它的值。我尝试了此操作,但收到错误storage size of ests is not constant

#include <iostream>
#include <stdlib.h>


double* pi_sequence(const int& len)
{
  static double ests[len];
  ests[0] = 1.11;
  ests[1] = 2.22;
  return ests; // address of?
}

int main() {

  double* ests = pi_sequence();
  std::cout << "will write to file: " << ests[0]  << std::endl;

}

1 个答案:

答案 0 :(得分:2)

  

通过引用使用const int创建静态数组

不可能。具有非动态存储的所有数组的长度必须是编译时间常数。

您可以有一个静态向量:

assert(len >= 2);
static std::vector<double> ests(len);
// ...
return ests.data();