C++ 将常量uint16 arr[]转换为uint16 arr[]

C++ 将常量uint16 arr[]转换为uint16 arr[],c++,visual-c++,C++,Visual C++,,如果您不担心变量名,并且对于非常量数组使用不同的内存也没问题,那么这是最快的方法 const uint16 arr[] = {1,2,3,4} unint16 arr1[4]; memcpy(arr1,arr,sizeof(arr)) 常数uint16 arr[]={1,2,3,4} unnit16-arr1[4]; memcpy(arr1、arr、sizeof(arr)) 你想保持变量名不变还是可以更改它?你想让内存保持不变吗?@Manoj:你可以更改变量名,而内存不需要保持不变……这对我来

,如果您不担心变量名,并且对于非常量数组使用不同的内存也没问题,那么这是最快的方法

const uint16 arr[] = {1,2,3,4} unint16 arr1[4]; memcpy(arr1,arr,sizeof(arr)) 常数uint16 arr[]={1,2,3,4} unnit16-arr1[4]; memcpy(arr1、arr、sizeof(arr))
你想保持变量名不变还是可以更改它?你想让内存保持不变吗?@Manoj:你可以更改变量名,而内存不需要保持不变……这对我来说很有效……谢谢
const_cast
不是个好主意。如果
const uint16
在程序中真的是永久只读的呢?@rohank:第一个问题ll,你知道const是什么意思吗?这意味着你不应该修改它。@rohank-我们没有给任何东西赋值。我们只是将const uint16数组的内容复制到非const uint16数组。@Nawaz:这是我项目中的要求。我知道这是不可接受的,但我需要跨越这个障碍。所以,请考虑一下一个解决办法。@Manoj:memmove能做到吗?
uint16_t arr2 = const_cast<uint16_t*>(arr1); 
const uint16 arr[] = {1,2,3,4} unint16 arr1[4]; memcpy(arr1,arr,sizeof(arr))