gpt4 book ai didi

c - 没有内存泄漏

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

在我的大学里,我们被要求创建一个分配所有空闲内存的程序。因此,我认为进行无限循环并在不释放内存的情况下分配内存肯定会耗尽计算机的所有可用内存。但是,由于我没有释放内存,所以一定存在巨大的内存泄漏。

所以我写了一个简单的程序,但是当我用 valgrind 检查它时,没有内存泄漏。没有任何。无直接无间接泄漏。

请告诉我为什么。这是我的程序:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main()
{
int i,kb=0,mb=0;
char *some;
while(1) {
for(i=0;i<1024;i++)
{
// Allocating memory one kilobyte a time.
some = (char*) malloc(1024);
if(some == NULL)
{
exit(EXIT_FAILURE);
}
kb++;
}
// Displaying no. of mbs that have been allocated at each mb
mb++;
printf("%d mb\n",mb);
}
return 0;
}

最佳答案

some = (char*) malloc(1024); 替换为:some = new char[1024];如果您至少有那么多可用内存,它将在 2000MB 时失败。但是,如果您在 Win32 环境中运行此程序,则不会分配计算机中的所有可用内存,因为每个进程有 2GB 的限制,因此在这种情况下,您将需要另一种方法。

关于c - 没有内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16400683/

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