gpt4 book ai didi

c - while循环中的malloc

转载 作者:行者123 更新时间:2023-11-30 18:59:13 24 4
gpt4 key购买 nike

在下面的代码中,我在 while 循环中放置了 malloc 调用

int main()
{
int *ptr;
while(1) {
ptr=malloc(1000);
if (ptr == NULL) break;
}
return (0);
}

while 循环 会一直运行到堆中剩余空间为止,还是会一直运行下去,除非它被终止,因为我们没有在分配的内存中写入任何数据?当然,存在内存泄漏,这是为了回答上述问题。

最佳答案

经过一定的迭代后,malloc 将失败。由于您不检查 malloc 的返回值,因此没有什么可以打破循环。

所以它会无限循环。

<小时/>

通过你的break,当malloc返回NULL时,它最终会跳出循环。正如您已经提到的,存在内存泄漏。通常,一旦程序退出,操作系统就会占用所有内存。尽管如此,正确地释放它是一个很好的做法。

关于c - while循环中的malloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13091456/

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