我从其他函数接收到数据到 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/