C 下面的代码段做什么?

C 下面的代码段做什么?,c,while-loop,malloc,C,While Loop,Malloc,下面的代码段做什么 #include <stdio.h> #include <stdlib.h> int main(){ int num=0; while(malloc(1<<10)) ++num; } 首先,1它会导致内存泄漏。你问了一个问题,这让如此聪明的人感到不安。请考虑重新格式化它并重新询问它,这样看来你有一个编程问题要解决。你也一样,伙计。@Bak1139我在帮你。真正地用mvce重写你的问题。这不是一个猜谜游戏。请解释您考虑这段

下面的代码段做什么

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

int main(){
    int num=0;
    while(malloc(1<<10)) ++num;
}

首先,1它会导致内存泄漏。你问了一个问题,这让如此聪明的人感到不安。请考虑重新格式化它并重新询问它,这样看来你有一个编程问题要解决。你也一样,伙计。@Bak1139我在帮你。真正地用mvce重写你的问题。这不是一个猜谜游戏。请解释您考虑这段代码的原因以及您希望它做什么。是的,它将内存分配给num变量,直到它不能再这样做。不,内存只是被分配了,然后就被遗忘了。num在每次分配时递增一次。没别的了。但正如我所说的,如果你打开优化,这段代码将被优化为int main{whilemaloc1024;},它不会给任何变量分配内存。它只计算malloc在返回NULL之前可能被调用的次数。
#include <stdlib.h>

int main()
{
    int num=0;
    while(malloc(1024)) ++num;
}