Kay*_*han 2 iphone memory-management cgpoint
纠正我,如果我错了,在执行中CGPointMake,CGPoint p;声明一个局部变量a struct,应该在离开范围后释放.但为什么函数可以没有风险地返回值?
无论如何,假设执行CGPointMake是正确的,我应该释放由创建的CGPoint CGPointMake吗?
它不需要被释放,因为它从未在堆上生存.只需要释放堆分配的内存.CGPointMake()在方法/功能存在后,将自动清除堆栈中分配的内存(如中所示).
该函数可以返回一个点,因为编译器看到"啊哈,这个函数想要返回一个sizeof(CGPoint)字节大的结构,所以我要确保返回值内存插槽中有足够的空间用于那么大的东西." 然后,当函数退出时,将返回值复制到返回内存插槽中,函数退出,并将返回槽中的值复制到其新目标.
| 归档时间: |
|
| 查看次数: |
1124 次 |
| 最近记录: |