我的CPP之路

路途坎坷,但要坚持!
posts - 7, comments - 4, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

malloc小记_1

Posted on 2008-03-27 16:35 yanvenhom 阅读(64) 评论(2)  编辑 收藏 引用 所属分类: C/C++基础知识
用malloc获取空的内存的地址,(malloc不会真正占用内存,真正占用内存的是初始化数据。)再进行数据填充,即占用内存,运行了下,发觉当内存用完的时候得出的占用内存大小不一样,明明占了将近1.5个GB,可是就是显示占了90多MB,而且两次pause都没出现就结束了,暂时想不通,如果哪位GGJJ知道的话请回复,小弟谢过了。(在taskmgr.exe中观察,呵呵,总算把2GB的内存都用了,直至弹出“虚拟内存不足的对话框”。)

以下为源代码:

#include <stdio.h>

void occupy(void *);

int main() {
    unsigned 
long ram = 0, ramDelta = 0, ramMb = 0, ramShow = 0;
    ramDelta 
= sizeof(char);
    printf(
"sizeof(men): %d Byte\n", ramDelta);
    
void *pvoid = 0;
    
for (pvoid = malloc(ramDelta);pvoid;pvoid = malloc(ramDelta)) {
        occupy(pvoid);
        ram 
+= ramDelta;
        ramMb 
= (ram / 1024/ 1024;
        
if (ramShow != ramMb) {
            ramShow 
= ramMb;
            printf(
"%d MB 被占用!\n", ramShow);
        }

    }

    system(
"pause");
    free(pvoid);
    
    system(
"pause");
    
return 0;
}


void occupy(void *pram) {
    
*(char *)pram = 1.0;
}


在gcc 3.4.5中编译通过并在xp sp 2 上运行。

Feedback

# re: malloc小记_1  回复  更多评论   

2008-03-28 09:28 by RichardHe
小子.你可是几个月没更新了?

工作很忙吗??

# re: malloc小记_1  回复  更多评论   

2008-03-29 13:35 by yanvenhom
@RichardHe
看了看前辈的blog,真多,小弟我算新手。
我没工作,最近在搞学士的论文,我非计算机专业,计算机是我的兴趣,乐在其中。
等做完事继续学习,谢谢大哥的脚印。^_^

标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
相关链接:
网站导航: