c++ - 将数据从 const void *data 转换为 double

标签 c++ c pointers void-pointers

我从其他函数接收到数据到 myfunction(const void *data),其中指针 data 存储类似 {0,0,0,0 的值,0,0,0,40,20,0,0,0,0,0,0}

我只想访问 {40,20,0,0,0,0,0,0} 中的值并转换为 double 类型值,该值应该给 8.0 。为了访问和转换为 double 类型,我尝试了指向 double 的指针:

double* dptr;
dptr=&(*data+8);
dptr;

这给出了类似的错误

"error: ‘const void*’ is not a pointer-to-object type"

最佳答案

在 C 中,您无法取消引用 void 指针。 因此,您可以键入强制转换 void 指针并使用它。 像这样的 dptr=((double*)data+8);所以现在将void数据视为双指针。

关于c++ - 将数据从 const void *data 转换为 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24881456/

相关文章:

c - 如何将 char(ASCII 字符)转换为保存在 C 字符串变量中的科学计数法

CS50 pset3 径流

c - 如何在函数中使用数组指针?

c++ - "Locking"两个 vector 并对它们进行排序

c++ - 数组右值的地址

c - 为什么 WIFSIGNALED(status) 在使用 ptrace 跟踪进程时无法检测到信号?

c - 指向数组类型的指针(自定义类型)

delphi - Delphi中指向指针的初始数组

c++ - 了解 C++ 成员函数模板特化

c++ - 为什么 boost 的随机数生成(正态分布)总是给出相同的值?