首页 > 后端开发 > C++ > 正文

如何修复在 C 中声明数组时出现的'预期常量表达式”错误?

Linda Hamilton
发布: 2024-10-25 13:04:03
原创
543 人浏览过

How to Fix the

解决数组大小的“预期常量表达式”错误

考虑以下 C 代码:

<code class="cpp">int count = 0;
float sum = 0;
float maximum = -1000000;

std::ifstream points;

int size = 100;
float x[size][2]; // <<< Error
登录后复制

此声明数组 x 时,代码引发“预期常量表达式”错误。出现此错误的原因是 C 要求在编译时已知非静态数组大小。

使用向量的解决方案

要解决此问题,我们可以使用 C 向量而不是数组:

<code class="cpp">std::vector<std::array<float, 2>> x(size);</code>
登录后复制

使用 new 的解决方案

另一种方法涉及使用 new 运算符动态分配数组:

<code class="cpp">float (*px)[2] = new float[size][2];</code>
登录后复制

替代解决方案

  • 使用Boost:如果您有权访问Boost库,则可以使用boost::array代替std::array。
  • 定义自定义数组类型:定义支持动态调整大小的自定义数组类型并在向量中使用它。

非 C 11 编译器的注意事项

如果您没有 C 11 支持,请使用以下技术:

  • 使用 new 时使用标识模板来简化语法。
  • 使用 std::pair作为前面提到的矢量解决方案的替代方案。

以上是如何修复在 C 中声明数组时出现的'预期常量表达式”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!