gpt4 book ai didi

iphone - 关于CGPoint的内存管理

转载 作者:行者123 更新时间:2023-12-03 20:26:31 25 4
gpt4 key购买 nike

引用CGPointMake explaination needed?

如果我错了,请纠正我,在CGPointMake的实现中,CGPoint p;声明了一个struct的局部变量,它应该离开范围后应释放。但为什么函数可以毫无风险地返回值呢?

无论如何,假设CGPointMake的实现是正确的,我应该释放由CGPointMake创建的CGPoint吗?

最佳答案

它不需要被释放,因为它从来不存在于堆上。仅需要释放堆分配的内存。在方法/函数存在后,在堆栈上分配的内存(如CGPointMake()中所做的那样)将被自动清理。

该函数可以返回一个点,因为编译器会看到“啊哈,这个函数想要返回一个结构,它是 sizeof(CGPoint) 字节大,所以我将确保有足够的空间在这么大的东西的返回值内存槽中。”然后,当函数退出时,返回值被复制到返回内存槽中,函数退出,返回槽中的值被复制到新的目的地。

关于iphone - 关于CGPoint的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3732175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com