Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在编译前创建大小为N的数组_C++_Arrays_Function_Parameters_Initialization - Fatal编程技术网

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)
以将数组的所有值初始化为零。