C高级开发面试题及详细答案.docx

C高级开发面试题及详细答案

一、基础核心题(每题5分,共30分)

请解释C语言中堆和栈的区别,结合实际开发场景说明什么时候用堆、什么时候用栈?

参考答案:

核心区别主要有4点,结合开发场景说明,不堆砌概念:

1.分配方式:栈由编译器自动分配释放(比如函数内局部变量),堆由程序员手动分配(malloc/calloc/realloc)和释放(free),若不手动释放,程序结束后由操作系统回收(注意:嵌入式环境中可能造成内存泄漏,因为嵌入式系统通常长期运行,不会频繁重启)。

2.空间大小:栈空间较小(通常几MB,由系统固定

文档评论(0)

1亿VIP精品文档

相关文档