已有指针T *ptr,怎么构造一个以ptr为首地址,长度为N的数组arr
已有指针T *ptr,如何构造一个以ptr为首地址,长度为N的数组arr?目的是将arr传给一个数组引用形参,比如:C/C+
已有指针T *ptr,如何构造一个以ptr为首地址,长度为N的数组arr?
目的是将arr传给一个数组引用形参,比如:
C/C++ codetemplate <typename T, unsigned int N> void sort(T (&arr)[N]){ //...}
[解决办法]用强制类型转换:
[code=c/c++]
*(T(*)[N])ptr
或者
*reinterpret_cast <T(*)[N]>(ptr)
这样就可以用sort函数了:
sort(*reinterpret_cast <T(*)[N]>(ptr))
[/code]