Bootstrap

完美世界C++游戏开发面试题及参考答案

堆栈数据结构有什么区别,举例说明

栈(Stack)和堆(Heap)是两种不同的数据结构,它们在多个方面存在显著区别:

存储方式

  • :栈是一种后进先出(LIFO)的数据结构,它的存储空间是连续的。栈由系统自动分配和释放,用于存储函数调用时的局部变量、函数参数、返回地址等信息。例如,当一个函数被调用时,系统会为该函数的局部变量在栈上分配空间,当函数执行完毕返回时,这些空间会自动被释放。

#include <iostream>
void func() {
    int a = 10; // a 存储在栈上
    std::cout << a << std::endl;
}
int main() {
    func();
    return 0;
}

  • :堆是一种动态分配内存的数据结构,它的存储空间是不连续的。堆由程序员手动分配和释放,使用 new 和 delete(或 malloc 和 free)来进行操作。
;