如果我需要进行字符串操作或操纵任何类型的数组,无论是标准类型如int还是自定义数据结构。使用本地变量还是动态分配和释放内存哪种更好呢?
我知道如果你使用本地变量,则不需要分配/释放内存,这可能会使我们免受内存泄漏的影响。但我想知道为什么人们喜欢使用动态分配内存。它只是一种编码风格还是真的有其好处。同时,它是否取决于我们正在编译的系统,还是取决于编译器?
即使系统具有足够的内存和速度资源,哪种技术更适合优化代码?
我知道如果你使用本地变量,则不需要分配/释放内存,这可能会使我们免受内存泄漏的影响。但我想知道为什么人们喜欢使用动态分配内存。它只是一种编码风格还是真的有其好处。同时,它是否取决于我们正在编译的系统,还是取决于编译器?
即使系统具有足够的内存和速度资源,哪种技术更适合优化代码?
int* const a = malloc(sizeof(int)); \n free(a);
是最简单的情况。请注意,此分配大小已知,并且内存在本地释放。当然,有些情况下您可以读写该内存,并且该引用不会离开作用域,或者编译器或其他优化器(例如LTO或中间字节码表示)可以证明该内存永远不会共享,其中堆栈可能会被使用而不是malloc(或其他分配器)。 - justin