c语言用不用malloc有什么区别?

怎么很多小程序不用那个分配内存怎么回事?一般数据结构才用那个分配内存。请问用不用有什么区别?

用malloc的主要作用是实现数据的动态分配,就是指这个数据在你想要用它的时候你可以使用,但是以后没用的时候你需要释放掉它的时候才malloc,举个比较夸张的例子,比如你需要分配一块内存来存放一些数据,如果这块内存的生命期很短,那你用完了就free,这点内存就可以给别的地方用了,否则如果这个内存申请完程序就走到死循环里了,那程序永远不退出那这点内存就总也不释放了。用不用malloc和程序大小无关,程序小不用是因为程序一下执行完了,所有资源都被操作系统回收了,不管在堆上还是在栈上,但是资源指望操作系统回收不是好习惯,重要数据还是自己控制的好,所以一些数据结构就都用malloc返回个地址然后用指针接,数据复杂了用指针比用结构可能更容易些 。还有我不咋认同楼上那位仁兄的观点,数据结构不是用来教学的,数据结构是算法,算法是程序的精髓,是真正解决问题的方式方法,我感觉任何可以解决问题的方法都可以说是算法,它是一种思想,单纯为了解决问题的,不一定非是用键盘鼠标,用笔和纸一样可以写的,数据结构是多年来好多人总结的常用一些算法的精华,咋能说是用不用都行呢,学习或者工作到最后指定都用的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-22
不用malloc的变量声明在栈,是编译器分配的空间。

malloc数据在堆区。
第2个回答  2012-05-22
对于小程序没有大的区别,数据结构用来教学,并不是非要用
第3个回答  2018-04-27
没啥区别啊。数据量小栈够用就不需要。数据量大就用堆空间。
相似回答