动态改变数组c ++的大小

时间:2012-04-04 04:50:36

标签: c++ arrays visual-c++

我有一个数组定义为;

  

static double Temp_data [TABLE_SIZE];

我想根据用户输入更改数组的大小。 这可能吗? 请帮我。 感谢。

3 个答案:

答案 0 :(得分:8)

没有。您可能想要使用std::vector<double> Temp_data;

然后您可以使用其resize()成员函数来设置您认为合适的大小。

编辑:为了清楚起见,您通常希望尽可能避免直接使用new(在这种情况下,您可以非常轻松地)。直接使用new是不同类型的错误的常量来源。 std::vector处理了很多使用new难以纠正的极端情况,确保数据在超出范围时得到清理等等。

我之前已经说过了,我将在此重复:有一次,除了编写使用new的代码之外别无选择。现在,你有一个选择 - 你应该运用它。鉴于现代编译器和标准库,几乎没有任何理由使用new分配数组。

答案 1 :(得分:2)

使用动态内存分配。

int size;
cin>>size
int *ptr = new int[size];

http://www.cplusplus.com/doc/tutorial/dynamic/

答案 2 :(得分:2)

T * pData

pData = new T [NUM_ELEMENTS];

基本上使用new运算符。阅读有关任何C ++参考的新内容的更多信息