C语言面试题及详细答案
一、基础必考题(入门级,考察基础掌握度)
1.请解释C语言中栈(stack)和堆(heap)的区别,举例说明各自的使用场景
答案:栈和堆都是C语言中用于内存分配的区域,核心区别体现在分配方式、生命周期、使用场景三个方面,没有绝对的优劣,按需使用即可。
1.分配方式:栈是系统自动分配释放,不需要程序员手动操作;堆是程序员手动分配(malloc/calloc/realloc)和释放(free),若忘记free会造成内存泄漏。
2.生命周期:栈的生命周期跟随函数调用,函数执行结束,栈上的变量自动销毁(比如函数内定义的局部变量);堆的生命周期由程序员控制,直到手动f
原创力文档

文档评论(0)