gpt4 book ai didi

C++ - 从 'void*' 到 'uint8_t**' 的无效转换

转载 作者:行者123 更新时间:2023-11-28 00:37:30 32 4
gpt4 key购买 nike

我有一个初学者问题,我没有找到任何正确的方法。在标题中我有:

    static uint8_t **data = NULL;

然后在我的函数中我想:

    data = av_mallocz (sizeof (uint8_t*) *planes);

但是错误来了:

A Invalid Conversion from 'void*' to 'uint8_t**'

av_mallocz 函数来自 ffmpeg: return av_mallocz (nmemb *size);

有什么想法吗?

最佳答案

试试这个:

data = (uint8_t**)av_mallocz (sizeof (uint8_t*) *planes);

请记住,sizeof (uint8_t*)不会告诉您的代码数据将是什么类型,它只是帮助计算 malloc 需要多少空间。 malloc 返回通用空间,这就是使用 void* 的原因。您仍然需要将该 void* 转换为您想要的类型。哦,由于这是 C++,您可能需要考虑 static_cast<uint8_t**>(...) , 只是为了更好。

关于C++ - 从 'void*' 到 'uint8_t**' 的无效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20328246/

32 4 0
文章推荐: c++ - lpData 在 RegQueryValueEx 之后没有得到值
文章推荐: c++ - 从字符串中删除字符
文章推荐: c++ - 错误 : no operand "<<" matches these operands when try to use Qstring with OStream object
文章推荐: javascript -