![]() |
1
5
一般来说,自动分配只能用于中小型对象。这个阈值很难描述,但在大多数情况下32MB远远高于这个阈值。
然后是
所有全局变量都在
声明的变量
堆中的分配不能保证在运行时成功。一个进程的总大小有一个上限,由系统策略和硬件体系结构强制执行。例如,在一个典型的32位系统上,该体系结构不能允许任何单个进程的地址超过4GB。
在这里,
在这里,
在这里,
在这里,
最后,它可以来自堆。如果它需要在整个运行中存在,就好像它是在编译时分配的一样,可以执行以下操作:
在这里,
在这里,
我不能给你一个硬性规定,除了大的分配永远不属于堆栈。如果缓冲区需要在进程的生存期内存在,那么
如果缓冲区需要不同的生存期,只有在运行时才知道大小,或者在运行时响应外部事件而生存和死亡,那么应该在堆上使用
|
![]() |
2
3
您试图在堆栈上声明整个数组。即使您有一TB的RAM,也只有一小部分固定的RAM专用于堆栈空间。需要在堆上分配大量数据,使用
|
![]() |
Tom Buck · c#程序在整数列表上冻结 7 年前 |
![]() |
Ran Lavi · 在c中初始化结构的指针++ 7 年前 |
![]() |
Js_zero · 在c++中实例化对象有几种方法,它们之间有什么区别 7 年前 |
|
jfernal · 节点。js在加载其他函数之前等待初始化变量 7 年前 |
|
Victor · 在javafx中运行时更改标签文本 7 年前 |
![]() |
blubb · 在Kotlin中是否有更惯用的方法来初始化此映射? 7 年前 |
![]() |
Bing Bang · 初始化包含字节数组的结构数组 7 年前 |