C高级工程师面试题及详细答案.docx

C高级工程师面试题及详细答案

一、基础核心题(考察基本功,杜绝死记硬背,贴合实际应用)

1.请说明C语言中堆(heap)和栈(stack)的区别,结合实际开发场景,举例说明什么时候用堆、什么时候用栈?

答案:堆和栈的核心区别在于内存分配方式、生命周期、使用场景,具体如下(结合实际开发,不堆砌概念):

1.分配方式:栈是编译器自动分配释放,属于“自动管理”;堆是程序员手动分配(malloc/calloc/realloc)和释放(free),手动管理,若忘记free会造成内存泄漏。

2.生命周期:栈的生命周期跟随函数调用,函数执行结束,栈上的变量自动销毁(比如函数内定义的局部变量int

文档评论(0)

1亿VIP精品文档

相关文档