C++数组:堆栈与堆
C++ Arrays: Stack vs Heap
在C++中,如何在堆栈中创建动态二维数组?我目前正在努力完成一项任务,概述两者的优点和缺点。欢迎任何关于该主题的来源或链接!非常感谢。
可以。当在与自由函数块中的自动存储相同的位置声明和定义时,具有2个维度的最基本聚合将在堆栈上为您提供一个数组。然而,这仅限于堆栈空间,堆栈空间通常在24kB和1MB之间。所以你不能做大数组。此外,由于它们的生命与程序流息息相关,您不能在需要时移动或删除它们。
堆与程序流分离,由malloc
函数决定内容的去向。通常,它根据大小请求有一堆"bin",从某个大小(通常超过256kB)开始,它会使用VirtualAlloc
或memmap
直接向操作系统请求块。在32位中,您最多可以分配2GiB,在64位中,当交换空间变满时,您最多可分配。此时,您的进程将被OOM或其他进程杀死。
我认为这些是的主要区别
相关文章:
- 为什么调用堆栈数组会导致内存泄漏
- 堆栈和队列是否像C++中的数组一样传递?
- 在函数范围内在堆栈上分配的数组在离开函数时是否总是被释放?
- C++ 对象数组堆栈溢出
- 在堆栈上C++大型多维数组
- 如何在 c++ 中实现堆栈数组?
- 将在堆栈上声明的元素添加到静态数组
- 如何模板化堆栈分配的多态指针数组到接口,包括派生类型的相应点?
- 在C++中使用数组时如何防止堆栈溢出?
- 使用一个内存集数组和单个堆栈在 O(n) 中查找数组的下一个更大元素
- 堆栈数组c++的Strcpy行为
- 使用数组C++的动态堆栈
- C++堆栈中数组之间的间隙
- 如果我使用malloc()而不是堆栈数组,OpenGL不会渲染对象
- 模板堆栈对象的数组;语法
- 如何将模板类添加到堆栈数组?
- 找出堆栈数组中的下一个整数是否相同
- 堆栈数组变量清理
- C++堆栈数组限制
- c++ -本地堆栈数组与动态分配