gpt4 book ai didi

c++ - void*字面意思是float,怎么投?

转载 作者:可可西里 更新时间:2023-11-01 18:08:09 25 4
gpt4 key购买 nike

所以我在我的 C++ 应用程序中使用这个 C 库,其中一个函数返回 void*。现在我不是纯 C 语言最敏锐的人,但听说 void* 可以转换为几乎任何其他 * 类型。我也知道我希望在这个函数的末尾某处有一个 float 。

所以我将 void* 转换为 float* 并取消引用 float*,崩溃。该死的!我调试了代码,并在 gdb 中让它评估 (float)voidPtr 和 low 并且看到这个值是我期望和需要的!

但是等一下,在编译期间是不可能的。如果我写 float number = (float)voidPtr; 它不会编译,这是可以理解的。

那么现在的问题是,我如何让我的漂浮物脱离这个该死的空洞*?

编辑:多亏了 H2CO3,这个问题已经解决了,但是我看到很多答案和评论出现并且令人失望,我不相信我可以在 gdb 中做 (float)voidPtr。这是屏幕截图。

enter image description here

最佳答案

尝试使用指针:

void *theValueAsVoidPtr = // whatever

float flt = *(float *)&theValueAsVoidPtr;

关于c++ - void*字面意思是float,怎么投?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15313658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com