关于C程序的运行

[复制链接]
查看11 | 回复4 | 2011-2-21 09:21:53 | 显示全部楼层 |阅读模式
分配空间失败通常有2种:一种是要分配的空间太大,导致它分配不了.另一种是现在内存占用的太多,不过用了.像楼上2位说的,malloc是从堆中分配的内存,这个堆的大小就营销了能开辟多大的内存....
回复

使用道具 举报

千问 | 2011-2-21 09:21:53 | 显示全部楼层
你一直让它malloc就可以看到了...
回复

使用道具 举报

千问 | 2011-2-21 09:21:53 | 显示全部楼层
malloc是从堆上分配内存的,如果你的堆设置太小,或是之前已经分配太多,超过限额,自然就分配失败...
回复

使用道具 举报

千问 | 2011-2-21 09:21:53 | 显示全部楼层
malloc分配内存中的堆,一块连续的内存地址,如果你malloc的堆很大,系统会通过链表的形式查找你需求大小的内存,如果没有找到适合你的内存大小,则返回NULL,所以在使用malloc动态申请的内存时候,要先判断系统是否分配成功,即if(r == NULL)...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行