该大小是不确定的受到多个因素影响。
限制因素:
1. Lib C库的实现
2. 操作系统
3. 硬件
4. 当前内存的使用状况。
具体不同Lib C库实现方式是最主要的因素。
其次就是操作系统,操作系统的地址空间分布决定了用户可用的最大地址空间,比如32位Windows是用户2G+内核2G的地址空间分配方式,32位Linux是用户3G+内核1G,不同操作系统的实现方式,对malloc也是有影响的。
然后就是硬件,32位和64位的硬件限制肯定是不一样的,页表的支持情况(巨型页)也会对malloc有限制。把范围扩大的话,ARM/PPC/MIPS上,页表和地址空间的限制也都不完全一致。页式管理
最后是当前内存使用情况,比如剩余内存,虚地址空间的碎片情况等等。
标签:malloc,操作系统,32,申请,地址,内存,空间,new From: https://blog.csdn.net/2401_86146578/article/details/143608108