Memory management 目标c中的malloc和内存泄漏
在目标c中使用malloc时,我遇到了内存泄漏问题。 代码如下: .h(接口) m.m(执行) 有人能帮我解决问题吗?我假设Memory management 目标c中的malloc和内存泄漏,memory-management,automatic-ref-counting,Memory Management,Automatic Ref Counting,在目标c中使用malloc时,我遇到了内存泄漏问题。 代码如下: .h(接口) m.m(执行) 有人能帮我解决问题吗?我假设malloc(sizeof(*bufferData))您指的是上面的malloc(helloworld.length)(因为在您的示例中,这是我看到的唯一malloc调用) 清除缓冲区时会发生内存泄漏: bufferData[i] = nil; 这会泄漏,因为您使用malloc分配了缓冲区内容,但后来没有使用free释放缓冲区内容。请注意,即使在ARC下,您也必须自己释放
malloc(sizeof(*bufferData))
您指的是上面的malloc(helloworld.length)
(因为在您的示例中,这是我看到的唯一malloc
调用)
清除缓冲区时会发生内存泄漏:
bufferData[i] = nil;
这会泄漏,因为您使用malloc
分配了缓冲区内容,但后来没有使用free
释放缓冲区内容。请注意,即使在ARC下,您也必须自己释放任何malloc
ed资源。ARC仅为Objective-C对象实例提供管理
此处释放缓冲区的正确方法是:
free(bufferData[i]);
bufferData[i] = NULL;
malloc(sizeof(*bufferData));
bufferData[i] = nil;
free(bufferData[i]);
bufferData[i] = NULL;