首页 > 解决方案 > 通过引用使用 const int 创建静态数组

问题描述

我正在尝试创建一个双精度数组,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;

}

标签: c++

解决方案


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

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

你可以有一个静态向量:

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

推荐阅读