首頁 > 後端開發 > 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學習者快速成長!