C++ 在编译前创建大小为N的数组
我正在尝试创建大小为C++ 在编译前创建大小为N的数组,c++,arrays,function,parameters,initialization,C++,Arrays,Function,Parameters,Initialization,我正在尝试创建大小为max\u value的数组新数组,内部函数某物。max\u value的值只能在运行时知道。如何修复此代码 void something (int input_array[], int array_length) { int max_value = *std::max_element(input_array, input_array + 8); int new_array[max_value] = {0}; } 我收到了一条实时消息:“可变大小的对象可能未
max\u value
的数组新数组,内部函数某物。max\u value
的值只能在运行时知道。如何修复此代码
void something (int input_array[], int array_length) {
int max_value = *std::max_element(input_array, input_array + 8);
int new_array[max_value] = {0};
}
我收到了一条实时消息:“可变大小的对象可能未初始化”C++没有可变长度数组(请阅读原因)(以及您的数组)
如果您同意使用堆而不是堆栈,则可以使用std::vector,如下所示:
std::vector<int> new_array(max_value, 0);
int new_array[max_value];
memset( new_array, 0, max_value*sizeof(int) );
C++没有可变长度数组。使用std::vector
。使用std::vector新数组(最大值)“编译前”的代码>可能的副本太早了。使用std::vector new_数组(max_值,0)
以将数组的所有值初始化为零。