首页 >后端开发 >C++ >如何在 C 中创建动态大小的数组?

如何在 C 中创建动态大小的数组?

Linda Hamilton
Linda Hamilton原创
2025-01-05 13:06:49178浏览

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