c++ - 通过引用使用 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;
}
解决方案
通过引用使用 const int 创建静态数组
不可能。所有具有非动态存储的数组的长度必须是编译时间常数。
你可以有一个静态向量:
assert(len >= 2);
static std::vector<double> ests(len);
// ...
return ests.data();
推荐阅读
- python - ImportError:无法确定 numexpr 的版本
- java - spring-cloud-dependencies、spring-cloud-context 和 spring-cloud-commons 之间有什么区别?
- c# - 在 C# 中使用 WebClient 下载 CSV 文件,但文件大小小于使用浏览器下载时的大小
- c# - 通过 c# .net Core 中的套接字连接将 Graph QL 查询作为消息发送
- java - JavaFX 和 jnativehook 库冲突
- xamarin.ios - 在 Xamarin 中如何等效于 UIImage.withTintColor?
- flutter - 当我从 firebase 读取数据时,它会显示我的数据。但它也显示所有用户数据。不仅是我的数据。但我只想要我的数据。不是其他用户
- html - 如何在 vuejs 中加载 html 模板
- java - 使用 Java 在外部显示器上播放视频
- java - 如何将我的 jsp 变量传递给我的标签?(HTML)