表达式必须在c ++中具有常量值

时间:2013-01-21 00:36:43

标签: c++

所以,我正在创建一个对象,它有一个数组作为它的实例。此数组的大小将由客户端程序确定。稍后在我的程序中,我必须创建一个与实例变量具有相同容量的临时数组。所以,我说:

int temp[capacity];

然而,当我尝试编译它时,它失败了。它说我必须有一个固定值而不是放置容量。知道如何解决这个问题? THX

2 个答案:

答案 0 :(得分:4)

如果在编译时已知capacity,则只能构造这样的数组。对于动态大小的数组,请使用std::vector

#include <vector>

std::vector<int> temp(capacity); // makes a vector with capacity elements

答案 1 :(得分:1)

而不是写这个:

int temp[capacity]

只需写下:

int* temp = (int*)malloc(capacity);