首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是一段内存安全的代码吗?

这是一段内存安全的代码吗?
EN

Stack Overflow用户
提问于 2011-03-25 18:34:05
回答 1查看 98关注 0票数 0
代码语言:javascript
复制
NSMutableArray *m_res = [NSMutableArray arrayWithCapacity:ticks];
double t = lo_t;
while (t <= hi_t) {
    [m_res addObject:[NSDecimalNumber decimalNumberWithDecimal:
                      [[NSNumber numberWithDouble:t] decimalValue]
                      ]];
    t += delta_t;
}

return [[NSArray arrayWithArray:m_res] retain];

它应该返回一个包含一些值的持久NSArray。我计划在不再需要它的时候调用它的release。这是正常的,还是有一些bug,因为当我调用包含此代码的函数时,我的程序停止工作(这是内存问题,而不是无休止的循环)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-25 19:38:50

代码是安全的(不会崩溃),但最后一行是错误的。arrayWithArray没有做任何有用的事情,而保留是一个漏洞。

它应该是

代码语言:javascript
复制
return m_res;

如果你崩溃了,原因在别处。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5431261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档