所以我想在函数中创建一个数组,其大小由作为参数的数字设置.这是一个例子:
void temp_arr ( const int array_size ) {
int temp_arr[array_size]; //ERROR array_size needs to be a constant value
//Then do something with the temp arr
}
Run Code Online (Sandbox Code Playgroud)
即使参数是const int,它也不起作用.我想不使用全局const而不使用向量.我很好奇,因为我正在学习C++.我希望它能够使每次调用函数时数组大小不同.是否有解决方案或我是否在调用函数之前创建一个const变量和数组?
使用模板功能:
template<std::size_t array_size>
void temp_arr()
{
int temp_arr[ array_size ];
// ...work with temp_arr...
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用以下语法调用该函数:
temp_arr<32>(); // function will work with a 32 int statically allocated array
Run Code Online (Sandbox Code Playgroud)
注意
每个具有不同值的调用都array_size将实例化一个新函数.