时间:2019-01-13 00:00:00 来源:信盈达 作者:
对于编程初学者来说会接触到一些难以理解的名称,比如堆(heap)、栈(stack)、堆栈(stack)等。初学开发过程中往往让人混淆不清。今天我们来谈谈堆和栈的具体区别,来帮助初学者理清思路。
“堆”和“栈”
先从简单的一个例子引出堆和栈:
void function()
{
int *p = (int *)malloc(10*sizeof(int));
}
这是C语言开发学习过程中,必不可免要学习的知识,动态分配一块空间,空间在堆区大小是40字节(32位系统中)。而定义的指针变量p是局部变量,在栈区中 占用4字节空间,用来存放刚刚前面动态分配的空间的首地址。
可以看出,在这一句代码中同时包含了栈和堆,如下图所示。
对于嵌入式面试者来说,堆和栈也是面试官比较容易考察的知识点,我们从以下几个方面比较一下堆和栈:
以上是栈和堆几个方面的不同,希望通过上面的资料可以帮助初学者分清堆和栈。
信盈达网校为大家准备了C语言学习视频,想要从事嵌入式方面的学习可以到www.edu118.cn,进行学习,里面还有M4、linux系统编程等整套嵌入式课程。
信盈达从事嵌入式教育十多年,积累了丰富的实战教学项目,比如:四轴飞行器、机械手臂、17自由度运动机器人、MCU环境检测,智能可穿戴、智能家居等。此外,信盈达2018嵌入式课程全面升级,新添加RK3399(A53+A72)教学平台学习内容,该平台广泛适用于AR设备、VA设备、3D设备、智能机器人、人脸识别、一体机、 庭影音、集群服务器、智能交互、车载设备、医疗行业、电视盒子等。
免费领取试听卡
申请已经提交
老师会马上给您安排试听课程!
申请出错了
您可以加老师QQ:914865590报名咨询!