如何在iOS 7中删除const char * arrayname分配的内存。 这是我的代码
const char *bytes = [encodedString UTF8String];
现在我想在启用ARC的情况下发布bytes
。我怎么能这样做。
答案 0 :(得分:2)
您无需做任何事情以确保最终发布。引用the documentation:
返回的C字符串是指向字符串对象内部结构的指针,该结构的生命周期可能短于字符串对象,并且肯定不会有更长的生命周期。因此,如果需要将C字符串存储在您调用此方法的内存上下文之外,则应复制该字符串。
换句话说,你不知道数组的生命周期,但是你知道它可能不会长寿,它将自动释放。
答案 1 :(得分:0)
您不应该直接释放由bytes
指针指向的内存,因为它由encodedString
对象管理。释放那个内存去掉所有对encodedString的强引用,内存应该被释放