【问题标题】:can't allocate region malloc无法分配区域 malloc
【发布时间】:2012-12-10 10:48:27
【问题描述】:

我收到此错误,导致我的应用程序崩溃:

..Splash-it(1369,0x5783000) malloc: *** mmap(size=516096) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug

我不知道为什么会导致错误。是内存问题错误吗?我该如何预防? “在 malloc_error_break 中设置断点进行调试”是什么意思?

感谢您的任何回答。

【问题讨论】:

  • 您的应用程序使用了多少内存?在哪个设备上?在此之前您是否收到过内存警告?
  • 新的ipad,不,我没有收到任何内存磨损
  • 看看stackoverflow.com/questions/8477236/… 的一些想法。

标签: ios


【解决方案1】:

不确定,但这就是我的情况,我通过删除断点解决了。

我正在从服务器加载数据并将它们添加到 tableview 并隐藏或显示页脚。有时我的页脚视图没有按我的意愿出现,所以我插入了断点来检查出了什么问题。但是在做同样的活动一段时间后,我的应用出现了上述错误。

我在没有断点的情况下尝试了 2-3 次,它没有崩溃,但是,每当我添加断点时,就会发生错误。

这可能不是您的情况,但我想如果您在主线程上执行一些大型操作并且插入了断点,您至少可以尝试一次。

【讨论】:

  • 删除断点是指通过选择顶部栏上的断点按钮来删除所有断点?如果我将它们留在代码本身中可以吗?
  • 我的意思是尝试通过禁用 Xcode 工具栏中的断点来运行您的代码。看看它是否有效。
  • 我之前已经禁用了它们,抱歉
【解决方案2】:

在我的情况下,我得到这个是因为 imgCount 没有得到价值,因为我的条件失败了。 并且非 void 函数正在返回 imgCount 的值。

- (NSInteger)collectionView:(PSUICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    NSInteger imgCount;
    if(collectionView == self.imageCollection) {
        imgCount=self.imageCount;
    }
    return imgCount;
}

所以我通过将值分配给 imgcount 来解决它。 它对我有用。

【讨论】:

  • 这个答案帮助我意识到我只是在引用一个数组作为计数而不是 array.count ,谢谢!!!
【解决方案3】:

您可能试图一次分配太多内存。我试图 malloc 疯狂的大量内存,我得到了这个错误。

【讨论】:

    猜你喜欢
    • 2021-02-04
    • 2017-04-07
    • 2021-02-08
    • 2022-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 2015-01-05
    相关资源
    最近更新 更多