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 提供几个选项:
int n = 10; double* a = new double[n]; // ... delete[] a;
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中文网其他相关文章!