我试图在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;
}
答案 0 :(得分:2)
通过引用使用const int创建静态数组
不可能。具有非动态存储的所有数组的长度必须是编译时间常数。
您可以有一个静态向量:
assert(len >= 2);
static std::vector<double> ests(len);
// ...
return ests.data();