gpt4 book ai didi

objective-c - alloca 对于数组分配与简单 [] 数组声明的有利性

转载 作者:行者123 更新时间:2023-11-30 17:40:13 37 4
gpt4 key购买 nike

阅读一些Apple代码,我偶然发现了以下C block

alloca(sizeof(CMTimeRange) * 3)

这与通过分配堆栈内存相同吗

CMTimeRange *p = CMTimeRange[3] ?

对性能有什么影响吗?需要释放内存吗?

最佳答案

如果你真的只想在堆栈上分配3个元素,那么使用alloca根本没有意义。仅当您具有依赖于运行时某些动态参数的可变长度,或者您在同一函数中执行未知数量的此类分配时,它才有意义。

alloca 不是标准函数,并且因平台而异。 C 标准倾向于引入 VLA(可变长度数组)作为替代品。

关于objective-c - alloca 对于数组分配与简单 [] 数组声明的有利性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21581718/

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