gpt4 book ai didi

c - 什么决定了可以分配多少内存?

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:09 25 4
gpt4 key购买 nike

这是 my previous question 的后续行动关于为什么需要 size_t。

鉴于 size_t 保证足够大以表示您可以分配的内存块的最大大小(意味着仍然可以有一些大于 size_t 的整数),我的问题是......

什么决定了一次可以分配多少?

最佳答案

您机器的体系结构、操作系统(但两者交织在一起)和您的编译器/库集决定了您可以一次分配多少内存。

malloc 并不需要能够使用操作系统可以给他的所有内存。操作系统不需要使机器中存在的所有内存可用(例如,各种版本的 Windows Server 具有不同的最大内存 for licensing reasons )

但请注意,操作系统可以提供比机器中存在的内存更多的内存,甚至比主板允许的内存更多的内存(假设主板有一个内存插槽,只接受 1gb 的内存棒,Windows 仍然可以让程序分配 2gb 的内存)。这是通过使用虚拟内存、分页(你知道的,交换文件,你的老 friend 和缓慢的 friend :-) 或者,例如,通过使用 NUMA 来完成的。 .

关于c - 什么决定了可以分配多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7850482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com