You need to force the "reinterpretation" of the pointer:
reinterpret_cast<long long int*>(pointer);
" , , ". , reinterpret_cast, , .. .., valgrind .
, , . .. (, - ..).
:
template <typename Dest, typename Src>
Dest* safe_pointer_cast(Src* src)
{
static_assert(sizeof(Src) == sizeof(Dest), "size of pointed values differ");
static_assert(alignof(Src) == alignof(Dest), "alignment different");
return reinterpret_cast<Dest*>(src);
}