首页 >后端开发 >C++ >如何修复在 C 中声明数组时出现的'预期常量表达式”错误?

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

Linda Hamilton
Linda Hamilton原创
2024-10-25 13:04:03635浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn