传递const int类型的参数来作为数组的大小,但是编译器提示我应输入常见表达式

我想在一个函数里建立一个数组,这个函数的参数是(int* arr,const int len)
我希望传递一个数组过去,还有数组的长度,然后我要在函数里新建一个数组,它和arr是等长的,但是编译器提示应输入常量表达式,为什么会这样?
我在main里面建立数组用const int定义的常量就可以,为什么函数里的不行呢?
有什么办法可以做到这一点?

还有我试着用sizeof(arr)/sizeof(arr[0])但是结果是1,有什么办法吗

是这样吗??
img