如果我有这个浮点数组声明:
float tables[10];
如何将“表”数组的长度更改为 20?
另一个与 C++ 中的数组有关的问题:
我不能像这样声明一个数组:
int length=10;
float newTables[length]; // error C2133: 'newTables' : unknown size
提前致谢。
如果我有这个浮点数组声明:
float tables[10];
如何将“表”数组的长度更改为 20?
另一个与 C++ 中的数组有关的问题:
我不能像这样声明一个数组:
int length=10;
float newTables[length]; // error C2133: 'newTables' : unknown size
提前致谢。
您不能更改数组的长度。在 C++ 中,您应该使用一个std::vector
for 动态数组:
#include <vector>
int main() {
std::vector::size_type length = 10;
std::vector<float> tables(length); // create vector with 10 elements
tables.resize(20); // resize to 20 elemets
tables[15] = 12; // set element at index 15 to value 12
float x = tables[5]; // retrieve value at index 5
}
如果您可以在构建时定义数组的大小,则可以使用 #define
#DEFINE ARRAY_SIZE 20
float tables[ARRAY_SIZE];
或者如果您需要在运行时指定数组的大小,请使用 new
float* newtables;
newtables = new float[20];
C++ 中的数组具有固定长度。如果你想坚持使用纯数组,你需要使用malloc、realloc 和 free动态分配内存。但是,您应该更喜欢std::vector或std::deque进行动态内存分配。
在 C++ 中运行程序时,您不能动态地更改数组的长度。关于您要声明数组的方式,我建议您执行以下操作:
const int length=10;
float newTables[length];
我不确定这是否是你想要的。在这种情况下,变量“length”是一个常数,在执行过程中不能改变。
我希望它对你有帮助。