c - malloc() 打破循环

标签 c heap-memory

为什么下面的代码直接显示Mb占用的堆:

int Mb = 0;
while ( malloc(1<<20)) ++Mb;
printf("Allocated %d Mb total\n", Mb);

1<<20是什么意思?

最佳答案

What is meant by 1<<20?

A 1,左移20位,又称为2^20 = 1048576。<<是向左移动的位移运算符。

关于c - malloc() 打破循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13202836/

相关文章:

c++ - 如何枚举进程中所有命名管道的名称?

java - Android:WebView 是否受 Java 堆限制的影响?

c++ - 删除堆上存储数据的堆上对象

c++ - new(堆或堆栈)创建的结构字段在哪里?

java - 如何估计给定任务是否有足够的内存在 Java 中运行

c - 反转 C 结构的字节顺序

c - 如何在循环中读取多个输入

c++ - 为什么此代码不返回空矩阵?

C 程序总是使用 1503657284 或 -1863345812 作为输入的 scanf 选择

Windows 程序有很大的 native 堆,比所有分配都大得多