OneWayOrAnother 2015-05-04 18:44 采纳率: 30%
浏览 1429
已采纳

关于C malloc()的请教....

在WINDOWS 64bits 下
执行:
#include
#include

int main(void)
{
    void *vp;
    int count=0;
    while(  ( vp=malloc(100*1024*1024) )  )
    {
        count++;
    }
    printf("已经分配%d00 MB 内存空间 \n",count);

    getchar();
    return 0;
}
运行结果:  已经分配5100 MB(每次运行的结果都不一样。) 内存空间。、
为什么在4G内存下可以分配5100MB内存空间?难道是缓存?
怎样精准的计算导致内存信息泄漏?5100是怎样来的?这两个问题之间有什么联系吗?
  • 写回答

4条回答 默认 最新

  • 91program 博客专家认证 2015-05-04 23:27
    关注

    Windows 平台下,确实有可能是虚拟内存;像 WinCE 下,就没有这种现象。

    精准的计算导致内存信息泄漏,可以通过对已使用和未使用的内存数值进行检控来实现。
    自己写代码:如何:调查进程的内存使用情况.aspx "如何:调查进程的内存使用情况")
    或通过如下的方法:内存的使用与windows 内存监控

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 BV260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序