Objective c 目标UIC图像到字符*转换返回空字符串

Objective c 目标UIC图像到字符*转换返回空字符串,objective-c,c,uiimage,objective-c++,Objective C,C,Uiimage,Objective C++,我正在尝试将UIImage(src)转换为常量无符号字符* 我发现了一个很好的例子。我遵循了这个示例,但我的缓冲区是一个空字符串(“”)。我一直在寻找更多的信息,但找不到 这是我的密码: CFDataRef pixelData = CGDataProviderCopyData(CGImageGetDataProvider(src.CGImage)); const unsigned char *buffer = CFDataGetBytePtr(pixelData); // buffer is

我正在尝试将UIImage(src)转换为常量无符号字符*

我发现了一个很好的例子。我遵循了这个示例,但我的缓冲区是一个空字符串(“”)。我一直在寻找更多的信息,但找不到

这是我的密码:

CFDataRef pixelData = CGDataProviderCopyData(CGImageGetDataProvider(src.CGImage));
const unsigned char *buffer = CFDataGetBytePtr(pixelData);  // buffer is ""
CFIndex bufferSize = CFDataGetLength(pixelData);
我是否遗漏了一个临时步骤,或者应该一起使用不同的方法

下面是我错误代码的图像:


无论我是否尝试使用CDDataRef或NSData进行转换,当我尝试将const unsigned char*复制到unsigned char*.

时,仍然会出现EXC_BAD_访问错误。在第二个示例中,您并没有
malloc
ing您的imageBuffer-调试器说的
address=0x0
很明显

要修复此问题,只需malloc imageBuffer:

imageBuffer = malloc(bufferSize);
因为您说过这是Objective-C++,所以您需要强制转换
malloc
-

imageBuffer = (unsigned char*)malloc(bufferSize);
将其置于
memcpy
之前


祝你好运

这个问题被标记为
c++
objective-c
——它真的是objective-c++吗?因为这会改变一切。我添加了Objective-C++。谢谢指点。这里实际上没有C++(除了<代码> nulpPTR <代码>)边注-这只修复了截屏示例。我不知道如何修复你头上的第一个代码。