为什么调用c语言程序前要设置堆栈?堆栈有什么用?没设置又会怎么样?堆栈是什么?还请各位嵌入式大神讲 10

为什么调用c语言程序前要设置堆栈?堆栈有什么用?没设置又会怎么样?堆栈是什么?还请各位嵌入式大神讲一讲... 为什么调用c语言程序前要设置堆栈?堆栈有什么用?没设置又会怎么样?堆栈是什么?还请各位嵌入式大神讲一讲 展开
 我来答
vansi1989
2015-10-08 · TA获得超过163个赞
知道答主
回答量:41
采纳率:0%
帮助的人:30.8万
展开全部
堆是用来申请不连续内存的数据区域,比如链表,地址不连续,而是通过指针串在一起形成一个连续的结构,c语言中用malloc函数申请的内存都在堆上,申请过不用时记得要用free函数释放掉,不然内存泄露。

而栈的速度比堆的快,数组和局部变量都是在栈上分配,效率比较高。

另外还有自由存储区、全局/静态存储区和常量存储区,此处不一一讲解了。

在启动文件里都要设置堆和栈的大小,这样合理的分配才不会造成资源的浪费。假如你代码中使用的链表占用空间比较大,这时你就需要把堆设置大一点。假如你使用的数组比较大,就得把堆设置大一点。最简单的方法可以测试一下栈大小,定义一个很大的数组int a[m]; m足够大时就会栈溢出。

想更多的了解c语言具体内存分区的话去百度吧,就帮你到这里了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式