我应该如何管理C块功能的内存? (Apple扩展)

时间:2010-08-17 07:10:27

标签: c memory-management block

Apple在C中引入了一个名为“block”的闭包。 我应该管理块的内存吗?如果是这样,我该怎么做?

1 个答案:

答案 0 :(得分:1)

与普通C中具有函数作用域的变量类似,函数中的块文字具有自动存储持续时间。当您将块文字视为指针类型时,您会看到可能出现的错误:当您从函数返回块时,您将返回指向本地内存的指针,该指针不再有效。

解决方案是在您想要返回块时使用Block_copy()函数,在不再需要时使用Block_release()

this tutorial中有关C中块的单独部分的更多信息。