大佬教程收集整理的这篇文章主要介绍了为什么malloc不会“使用”我的电脑上的内存?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
#include <stdio.h> #include <stdlib.h> int main(void) { char *p,s[2]; p = malloc(256 * 1024 * 1024); if ( p == NULL) exit(1); printf("Allocated"); fgets(s,2,stdin); free(p); return 0; }
我多次运行这个程序,并且对它们进行了背景化,直到不再有足够的内存被分配.但是,从来没有发生过.我运行了一个linux top命令,甚至在运行这个程序多次后,空闲的内存永远不会下降近256 MB.
但是,另一方面,如果我使用calloc而不是malloc,那么有一个巨大的区别:
p = calloc(256 * 1024 * 1024,1);
现在如果我运行程序和背景,并重复,每次运行它,可用内存下降256 MB.为什么是这样?为什么malloc不会导致可用的可用内存更改,但是calloc呢?
以上是大佬教程为你收集整理的为什么malloc不会“使用”我的电脑上的内存?全部内容,希望文章能够帮你解决为什么malloc不会“使用”我的电脑上的内存?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。