c-如何编写一个while循环,通过malloc在while循环中分配500kb内存



我是一名C程序员新手。我试图通过一次分配500kb内存来测试malloc函数的极限,直到malloc返回null。我试过几种方法,但都不起作用。有人能帮我修复我的代码吗?让它做我想做的事?另外,我应该如何打印出最后一个内存地址?这是我目前拥有的:

#include<stdlib.h>
#include<stdio.h>
int main()
{
    int *p;
    int tf = 1;
    while(tf==1)
    {
        p=(int*) malloc(500*4);
        if(p == NULL)
        {
            tf = 0;
        }
    }
}
#include<stdlib.h>
#include<stdio.h>
int main()
{
    int *p;
    int counter = 0;
    while(p != NULL)
    {
        p=(int*) malloc(500*1000);
        counter++;
    }
    printf("%dn", counter/2);//mem size in MB
    printf("%pn", p);//address
    return 0;
}

试试这个

根据您对方法的描述,这里有一些错误。

首先,这是一次分配500个字节,而不是500千字节。

其次,没有办法打破while循环。所以,即使在malloc开始返回null之后,您也将永远在那里旋转。

最后,这甚至不应该编译,更不用说运行了,因为torf并没有在任何地方声明。

你走在了正确的轨道上,但我很怀疑你是否真的做到了。

相关内容

  • 没有找到相关文章

最新更新