NSMutabledata byteswithnocopy的问题
我正在尝试编写一个代码来从malloced buffer创建NSMutableData。我使用了freewhendone = YES
1)创建NSData后访问缓冲区时出错。(在下面的代码中的memset中)
2)malloced缓冲区指针和[数据字节]指针是不同的。
这些有什么解释吗?
UWORD8 *rgb_buffer = malloc(u4_stride * u4_height * 3); NSMutableData *rgbData = [NSMutableData dataWithBytesNoCopy:rgb_buffer length:(u4_stride * u4_height * 3) freeWhenDone:YES]; memset(rgb_buffer, 0, (u4_stride * u4_height * 3));
从二进制数据编程指南
NSMutableData响应dataWithBytesNoCopy:length:,但无论如何都要复制字节,并立即释放缓冲区。
创建NSData后,它在访问缓冲区时出错。(在下面的代码中的memset中)
缓冲区立即释放。
malloced缓冲区指针和[数据字节]指针是不同的。
NSMutableData
创建字节副本。