gpt4 book ai didi

c - 这个循环将运行多少次?

转载 作者:IT王子 更新时间:2023-10-28 23:33:23 25 4
gpt4 key购买 nike

面试问问题:

while(1)
{
void * a = malloc(1024*1024);
}

这个循环将在 2 gb ram 和 8 gb ram 上运行多少次?

我说无限循环是因为即使内存已满,也没有终止条件。他不同意。我现在不知道。请帮忙。

最佳答案

它应该无限期地运行。在大多数平台上,当没有更多可用内存时,malloc() 将返回 0,因此循环将继续运行,而不会更改分配的内存量。 Linux 允许内存过度使用,以便 malloc() 调用继续添加到虚拟内存。当 malloc() 用于管理内存的数据开始导致问题时,该进程最终可能会被 OOM Killer 杀死(这不是因为您尝试使用分配的内存本身,因为代码不使用它),但问题中没有将 Linux 规定为平台。

关于c - 这个循环将运行多少次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18053216/

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