【发布时间】:2024-04-23 23:20:02
【问题描述】:
我知道我们可以用 0 来初始化一个二维数组
a[value_1][value_2] = {0};
如果我们写
a[value_1][value_2] = {number other than 0};
第一个元素由 { } 中给出的数字初始化,其余全部为 0。
但是,困扰我的是,我们如何初始化一个数组,其参数 value_1 和 value_2 已从用户那里获取输入,因为它显示可变大小的对象可能未初始化的错误。
此外,如果您也能说出关于多维数组(而不仅仅是二维数组)的相同信息,那将会很有帮助。
【问题讨论】:
-
您是在专门谈论 C,还是可以使用 C++ 的 std::vector 代替?
-
您必须更具体地说明您想要什么:C 和 C++ 在这一点上有所不同。 C,从 C99 开始,允许
value_1等是动态的(在“VLA”下查找),C++ 没有,但有其他构造。 -
我说的是 c 和 c++,但是使用了一种不会增加程序执行时间的方法。好吧,我不知道 std::vector 但是如果它会增加程序的执行时间,那么通过 for 循环方法初始化它会有什么区别。
-
@JensGustedt 你能告诉我如何在 c 和 c++ 中做到这一点吗?
标签: c++ c arrays multidimensional-array array-initialization