所以我在我的 C++ 应用程序中使用这个 C 库,其中一个函数返回 void*。现在我对纯 C 不是最敏锐的,但听说 void* 可以转换为几乎任何其他 * 类型。我还知道我期望在这个函数的末尾有一个浮点数。
所以我将 void* 转换为 float* 并取消引用 float*,崩溃。该死!
我调试代码并在 gdb 中让它评估(float)voidPtr
低矮的价值正是我所期望和需要的!
但是等等,在编译期间不可能相同。如果我写float number = (float)voidPtr;
它无法编译,这是可以理解的。
现在的问题是,我该如何让我的漂浮物摆脱这个该死的虚空*?
编辑:感谢 H2CO3,这个问题得到了解决,但我看到很多答案和评论出现和消失,不相信我可以在 gdb 中执行 (float)void Ptr。这是屏幕截图。
![enter image description here](https://i.stack.imgur.com/T6LBM.png)
尝试使用指针:
void *theValueAsVoidPtr = // whatever
float flt = *(float *)&theValueAsVoidPtr;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)