gpt4 book ai didi

c++ - 编译错误 : cast void * failed in C/C++

转载 作者:太空狗 更新时间:2023-10-29 23:50:26 26 4
gpt4 key购买 nike

我想编译一个我知道可行的项目。

所以我创建了一个 Makefile 来编译它,但是当我编译它时出现了这个错误:

invalid conversion from ‘void*’ to ‘LIMITOR_3DSL_Limitor_32f* {aka LIMITOR_3DSL_Limitor_32f_tag*}’ [-fpermissive]
*ppStatus = ippMalloc(sizeof(LIMITOR_3DSL_Limitor_32f));
^

真的很奇怪 void* 怎么不能被施放?编译器可能是问题所在吗?我正在使用 g++

最佳答案

与 C++ 中的 C 相反,您不能将 void * 类型的指针分配给任何其他类型的指针,因为这样的分配是不安全的。您必须使用 C 或 C++ 形式的转换将指针显式转换为所需的类型。

例如

LIMITOR_3DSL_Limitor_32f *ppStatus = ( LIMITOR_3DSL_Limitor_32f * )ippMalloc( sizeof(LIMITOR_3DSL_Limitor_32f ) );

LIMITOR_3DSL_Limitor_32f *ppStatus = static_cast<LIMITOR_3DSL_Limitor_32f*>( ippMalloc(sizeof(LIMITOR_3DSL_Limitor_32f ) ) );

关于c++ - 编译错误 : cast void * failed in C/C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30350619/

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