如果我有这个浮点数组声明:
float tables[10];
如何将'tables'数组的长度更改为20?
另一个与C ++中的数组有关的问题:
我不能声明这样的数组:
int length=10;
float newTables[length]; // error C2133: 'newTables' : unknown size
提前致谢。
答案 0 :(得分:14)
您无法更改数组的长度。在C ++中,您应该使用std::vector
作为动态数组:
#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
}
答案 1 :(得分:1)
如果您可以在构建期间定义数组的大小,可以使用#define
#DEFINE ARRAY_SIZE 20
float tables[ARRAY_SIZE];
或者如果您需要在运行时指定数组的大小,请使用新的
float* newtables;
newtables = new float[20];
答案 2 :(得分:1)
C ++中的数组具有固定长度。如果你想坚持使用纯数组,你需要使用malloc, realloc and free动态分配内存。但是,您应该更喜欢std::vector或std::deque进行动态内存分配。
答案 3 :(得分:0)
在C ++中运行程序时,无法以动态方式更改数组的长度。关于你想要声明数组的方式,我建议你:
const int length=10;
float newTables[length];
我不确定这是不是你想要的。在这种情况下,变量“length”是常量,在执行时不能更改。
我希望它可以帮到你。