分页: 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字节的内存一直不被使用,不知道原因
请高手解答,谢谢谢谢