heap内存模型

 

 

 


 


https://blog.csdn.net/qq_25072517/article/details/89852643

 

 

#include "stdlib.h"

#include "stdio.h"

https://blog.csdn.net/mmshixing/article/details/51679571

https://blog.csdn.net/qq_37764129/article/details/81705651?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param

 

int main() {

    long long count = 0;

    while (true) {

         //

         char* p = (char*)malloc(10000);

         if (p != nullptr) {

             count++;

             printf("count=%d\n",count);//197061,197075,197070,197076

         }

         else {

             break;

         }

            

         int a = 3;

    }

    return 0;

}

在循环中不断调用malloc,但是不适用申请的内存,则,只是在申请虚拟内存,当循环到一定次数时,malloc开始返回null,说明虚拟heap的大小也是有限制的。 每次的count大体相同。

 

申请之后,马上适用的话,count一样哎,任务管理器看占用的内存比率时也相似哎

int main() {

    long long count = 0;

    while (true) {

         //

         char* p = (char*)malloc(10000);

         if (p != nullptr) {

             count++;

             p[0] = 'p';

             printf("count=%d\n",count);//197079,197074

         }

         else {

             break;

         }

            

         int a = 3;

    }

    return 0;

}

 

 

 

 

©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页