Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
449 views
in Technique[技术] by (71.8m points)

C语言什么时候用malloc获取动态内存?

记得大学时候学过一段时间C,里面的代码并不需要malloc就可以运行,比如直接定义一个数组,一个int.
什么时候需要写这个函数?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

函数里直接定义数组,数组的内存分配在栈stack里面,函数返回数组内存就会被释放,malloc的内存分配在堆heap里面,函数返回后heap分配的内存不会自动释放,需要手工调用free。malloc分配内存开销比数组大,速度慢。

一般的,如果你的内存需要函数返回后还继续使用,必须用malloc。否则,可以用局部数组,这样效率高速度快而且还不用麻烦手工释放内存。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...