c语言malloc函数当申请的空间大于内存时是否会使用虚拟内存?

 我来答
吉祥二进制
高粉答主

2013-03-01 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84580

向TA提问 私信TA
展开全部
虚拟内存是现代计算机一个很重要的技术基础,不是malloc申请的空间大于内存时才会使用虚拟内存,而是一直分配的都是虚拟内存,有时候可以说,正是因为引入了虚拟内存,才使得动态内存分配如此简单。。没事欢迎来 0x30 百度贴吧 耍耍,共同分享学习c/c++
cdyzxy
2013-03-01 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3746万
展开全部
c语言不作这方面的判断,这是操作系统的事.
c语言程序直接将申请内存的请求发送给操作系统,操作系统会根据具体情况来处理,需要使用虚拟内存就使用,但在c语言程序来看,得到的内存与物理内存是一样的.
一般程序编译时会指定自己的堆有多大,malloc在堆中申请,如果超过堆的尺寸会申请失败;程序在启动时,向操作系统申请堆空间,一般不会是在运行时才申请堆空间的.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
会编程的法师助理
2015-10-21 · TA获得超过2.9万个赞
知道大有可为答主
回答量:5166
采纳率:61%
帮助的人:370万
展开全部
  c语言不作这方面的判断,这是操作系统的事。
  虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
2013-03-01 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5709万
展开全部
malloc 就是用虚拟存储。内存申清是否失败可以检查。例如: buffer = (char *) malloc(sizeoof(char)*90000);
if (!buff) { printf("no enough memory for buffer\n"); return 1;};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友349d18b
2013-03-01 · TA获得超过444个赞
知道小有建树答主
回答量:571
采纳率:50%
帮助的人:371万
展开全部
这是操作系统的事,无需你操心.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式