分页: 1 / 1

一个奇怪问题的请教

帖子发表于 : 周六 9月 04, 2010 4:08 pm
weishengshou
问题是这样的:
两个程序A,B
代码如下:
A
代码: 全选
for(;;)printf("test");

B
代码: 全选
char *buf;
for(;;)
{
    buf=(char *)malloc(2000);
    buf[1]=1;
    free(buf);
}

系统内存:128M
内存查看方式:/proc
运行方式:
ln -sP /dev/shmem /test
A >/test/test.txt &
B
当程序运行一段时间后,B因为要malloc一个2000的内存,如果分配不成功,后续操作会产生singal 11的段错误,程序退出。

我的问题是:如果将2000改为20,程序一直正常运行,不知道为什么?
另外查看/proc的情况,看到A程序占满内存的情况下,还会有20480字节的内存一直不被使用,不知道原因
请高手解答,谢谢谢谢