c++ - 有没有一种可能的方法将 c++ 数组大小设置为函数的返回值
问题描述
我对 C++ 很陌生,所以请多多包涵:我希望将数组的大小设置为函数的输出,例如:
//this is not the actual function, (go figure)
int getSizeInt(int size)
{
return size;
}
int main()
{
char charArray[getSizeInt(6)]; // Error: *function call must have a constant value in a constant expression*
return 0;
}
这可能是不可能的,我真的不知道。我用谷歌搜索了这个问题,并一直在修改初始化数组的不同方法,但无济于事。
解决方案
有没有一种可能的方法将 c++ 数组大小设置为函数的返回值
是的。
数组变量的大小必须是编译时常量。如果函数是constexpr
并且其参数本身是常量表达式,则函数调用是常量表达式。
您的函数不满足这些约束,因此它的返回值不能用作数组变量的大小。
但是,它可以用作动态数组的大小。创建动态数组的最简单方法是使用std::vector
(std::string
如果您的意图是表示文本,可以考虑使用):
std::vector<char> charArray(getSizeInt(6));
推荐阅读
- list - 输入'列表
' 不是类型 'List 的子类型 '函数结果'的'卡住 - java - File.createTempFile(title, ext).getTotalSpace() 返回错误结果
- go - 从 x pos 二进制文件中提取文本
- c#-4.0 - 无法使用 Rebex C# 压缩和加密 100MB 文件
- macos - Silverstripe 4.4 在 CMS / Safari / Mac / OS 10.14 中浏览文件
- c# - Unity GooglePlayGames LoadScores 始终不返回任何内容
- python - 如果依赖项中存在无法解决的冲突,则 Pip 安装会陷入无限循环
- c# - 在仍在运行的线程上调用方法
- c# - .net 内核上的 Ubuntu 写入文件 | System.IO.IOException:权限被拒绝
- asp.net-core-2.1 - 为什么 Antiforgery CookieSecurePolicy 不适用?