首頁 >後端開發 >C++ >如何在 C 中建立動態大小的陣列?

如何在 C 中建立動態大小的陣列?

Linda Hamilton
Linda Hamilton原創
2025-01-05 13:06:49137瀏覽

How Can I Create a Dynamically Sized Array in C  ?

C 中的可變大小數組

C 中不允許初始化可變長度的陣列。但是,在某些實作中,例如 G ,允許這種做法作為擴展。

int n = 10;
double tenorData[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

此程式碼將導致錯誤,因為「tenorData」是無法初始化的可變大小物件。要解決此問題,您可以將陣列大小指定為數字文字:

double tenorData[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

替代方法

如果您確實需要動態大小的數組,C 提供幾選項:

  • 動態記憶體分配:手動分配使用new 和delete[].
int n = 10;
double* a = new double[n];
// ...
delete[] a;
  • 標準容器: 使用標準容器,如 std::vector。
int n = 10;
std::vector<double> a(n);

恆定大小數組

如果不需要可變大小的數組,您可以使用常數建立固定大小的陣列:

const int n = 10;
double a[n];

或者,您可以使用C 中的constexpr 11:

constexpr int n()
{
    return 10;
}

double a[n()];

以上是如何在 C 中建立動態大小的陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn