C语言面试题及详细答案.docx

C语言面试题及详细答案

一、基础必考题(入门级,考察基础掌握度)

1.请解释C语言中栈(stack)和堆(heap)的区别,举例说明各自的使用场景

答案:栈和堆都是C语言中用于内存分配的区域,核心区别体现在分配方式、生命周期、使用场景三个方面,没有绝对的优劣,按需使用即可。

1.分配方式:栈是系统自动分配释放,不需要程序员手动操作;堆是程序员手动分配(malloc/calloc/realloc)和释放(free),若忘记free会造成内存泄漏。

2.生命周期:栈的生命周期跟随函数调用,函数执行结束,栈上的变量自动销毁(比如函数内定义的局部变量);堆的生命周期由程序员控制,直到手动f

文档评论(0)

1亿VIP精品文档

相关文档