C++定义数组问题..
int fun(const int len)
{
int arr[len];
}
void main()
{
fun(5);
}
fun函数会出错..
传入的参数明明是const, 为什么不能定义数组的大小???
我想实现传入多大参数就定义多大数组..
有除了new, 容器以外的其他办法么??
[解决办法]
可以这样
template<typename T, int size>
int GetArrLength(T(&)[size]){return size;}
template<typename T, int N>
void fun()
{
T data[N];
}
int const num = 5;
int b[num];
//这样是不行的,因为
void fun(int const num)
{
int b[num];
}
int main()
{
for(int i = 0; i != 10; ++i)
{
fun(i);//i不是常数
}
return 0;
}
void fun(int num);
void fun(int const num);