gpt4 book ai didi

objective-c - 从不兼容类型'void *'分配给'uint8_t *'(aka'unsigned char *')

转载 作者:行者123 更新时间:2023-12-01 18:26:22 24 4
gpt4 key购买 nike

 uint8_t *bufferPtr=NULL;
size_t bufferPtrSize=0;
bufferPtr=malloc(bufferPtrSize * sizeof(uint8_t))

我在File1.m中使用了相同的代码,但工作正常。当我在File2.mm上使用它时,它给了我 assigning to 'uint8_t *' (aka 'unsigned char *' ) from incompatible type 'void *'错误。

最佳答案

这是因为.mm文件不被视为普通的Objective-C文件,而是被视为Objective-C++文件,因此C++的类型规则在这里适用。在C++中,如果您决定拥有一个类型(在这种情况下,您有一个void指针),然后又想使用另一种类型(在您的情况下是char指针),则必须显式转换它们。这样做的方法是static_cast<T>(),其中T是目标类型。即:uint8_t *bufferPtr = static_cast<uint8_t *>(malloc(bufferPtrSize * sizeof(uint8_t)));

关于objective-c - 从不兼容类型'void *'分配给'uint8_t *'(aka'unsigned char *'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13415672/

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