记得大学时候学过一段时间C,里面的代码并不需要malloc就可以运行,比如直接定义一个数组,一个int.什么时候需要写这个函数?
函数里直接定义数组,数组的内存分配在栈stack里面,函数返回数组内存就会被释放,malloc的内存分配在堆heap里面,函数返回后heap分配的内存不会自动释放,需要手工调用free。malloc分配内存开销比数组大,速度慢。
一般的,如果你的内存需要函数返回后还继续使用,必须用malloc。否则,可以用局部数组,这样效率高速度快而且还不用麻烦手工释放内存。
2.1m questions
2.1m answers
63 comments
56.6k users