【问题标题】:How to remove memory allocated by const char* iOS 7如何删除由 const char* iOS 7 分配的内存
【发布时间】:2014-06-11 07:56:49
【问题描述】:

如何在 iOS 7 中删除由 const char* arrayname 分配的内存。 这是我的代码

 const char *bytes = [encodedString UTF8String];

现在我想在启用 ARC 的情况下发布 bytes。我该怎么做。

【问题讨论】:

    标签: objective-c ios7 memory-leaks char constants


    【解决方案1】:

    您不需要做任何事情来确保它最终会被释放。引用the documentation:

    返回的 C 字符串是指向字符串对象内部结构的指针,它的生命周期可能比字符串对象的生命周期短,而且肯定不会有更长的生命周期。因此,如果需要将 C 字符串存储在调用此方法的内存上下文之外,则应将其复制。

    换句话说,你不知道数组的生命周期,但你知道它可能不会活多久,它会被自动释放。

    【讨论】:

      【解决方案2】:

      你不应该直接释放bytes指针指向的内存,因为它是由encodedString对象管理的。要释放该内存,请摆脱对编码字符串的所有强引用,并且应该释放内存

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-15
        • 2015-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多