一个奇怪问题的请教

中文QNX 讨论: 欢迎大家灌水,讨论有关QNX 问题。
回复
weishengshou
Senior Member
帖子: 48
注册时间: 周二 1月 09, 2007 10:10 pm

一个奇怪问题的请教

帖子 weishengshou » 周六 9月 04, 2010 4:08 pm

问题是这样的:
两个程序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字节的内存一直不被使用,不知道原因
请高手解答,谢谢谢谢

回复