将 void* 转换为 T* const
Cast void* to T* const
我有一个void*
指针p
指向一个数据数组,其类型是T
(主要是float
),我想用这个更新数据指针 p
,所以我用 reinterpret_cast<T*>(p)
转换它,然后修改值。问题是,p
本身不能修改,所以为了安全我真的想把它转换成T* const
,但我不知道如何正确地做。
T* const cp = reinterpret_cast<T* const>(p);
T* const cp = static_cast<T* const>(p);
T* const cp = static_cast<T* const>(reinterpret_cast<T*>(p));
....
我知道最简单的方法是复制 p
并使用复制的指针代替,这样原始的 p
永远不会被修改,只是想知道我如何才能实现同样的事情通过铸造。
转换指针将创建一个新的指针值,它与旧指针不同。 p
不会受到影响,期间。所以没有必要在这里玩 const
。
我有一个void*
指针p
指向一个数据数组,其类型是T
(主要是float
),我想用这个更新数据指针 p
,所以我用 reinterpret_cast<T*>(p)
转换它,然后修改值。问题是,p
本身不能修改,所以为了安全我真的想把它转换成T* const
,但我不知道如何正确地做。
T* const cp = reinterpret_cast<T* const>(p);
T* const cp = static_cast<T* const>(p);
T* const cp = static_cast<T* const>(reinterpret_cast<T*>(p));
....
我知道最简单的方法是复制 p
并使用复制的指针代替,这样原始的 p
永远不会被修改,只是想知道我如何才能实现同样的事情通过铸造。
转换指针将创建一个新的指针值,它与旧指针不同。 p
不会受到影响,期间。所以没有必要在这里玩 const
。