为什么new了这么多,只占这么点内存

junkli 2011-07-07 11:09:09
int i=1024*1024*1024;
char *c=new char[i];

为什么只占800多K内存
...全文
2381 103 打赏 收藏 转发到动态 举报
写回复
用AI写文章
103 条回复
切换为时间正序
请发表友善的回复…
发表回复
laizhixinli 2011-07-18
  • 打赏
  • 举报
回复
小菜不懂,学习学习!!
brk1985 2011-07-18
  • 打赏
  • 举报
回复
学习了。。。mark。。。
hongtao1126 2011-07-18
  • 打赏
  • 举报
回复
打错了
就想叫yoko 2011-07-18
  • 打赏
  • 举报
回复
linux下的malloc确实存在 在实际要使用到申请的内存时再去申请内存的情况
jungle_007 2011-07-17
  • 打赏
  • 举报
回复
嗯,牛人多多,学习了
robinkeng 2011-07-14
  • 打赏
  • 举报
回复
makr
TimZhuFaith 2011-07-14
  • 打赏
  • 举报
回复
好贴。。。
  • 打赏
  • 举报
回复
[Quote=引用楼主 junkli 的回复:]
C/C++ code
int i=1024*1024*1024;
char *c=new char[i];


为什么只占800多K内存
[/Quote]

重点就是你怎么看出只有800多k。楼主问过你的电脑了?没有memset的话,你就看一下strlen那必然是不对的。
strlen只是遇到'\n'就返回了。
nightkids_008 2011-07-14
  • 打赏
  • 举报
回复
此贴应该加精~~置顶
  • 打赏
  • 举报
回复
我用vs2008,占用了大约1G。
笨小鸟 2011-07-11
  • 打赏
  • 举报
回复
我只想说new出来的内存肯定是马上就提交了的,不存在暂时不占用的说法,要不你试试new个大约2g的内存,但是不使用,看你电脑卡不卡。
一根烂笔头 2011-07-10
  • 打赏
  • 举报
回复
喔喔喔喔,高手很多啊!而且都是偏内核的啊!
此贴将探讨出一个名堂来,菜鸟继续关注!

不过我还要说一句:搞程序的用“金山卫生巾”?或者360?你相信它吗?表示鸭梨很大!
motzyd 2011-07-10
  • 打赏
  • 举报
回复
学C语言的人用金山卫士查看内存变动?
lwh_liu 2011-07-10
  • 打赏
  • 举报
回复
马克,激动的马克。
waxilo1988 2011-07-09
  • 打赏
  • 举报
回复
说的好 学东西了
O溺水的鱼0 2011-07-09
  • 打赏
  • 举报
回复
深奥。
DontKissBossAss 2011-07-09
  • 打赏
  • 举报
回复
new 出来的东西,有足够的寓意被COMMIT到物理内存中。但是当内存紧张的时候可能被缺页换出, 当然也有办法申请大内存而不被换出(M$下: virtualalloc时传递*_LARGE_PAGE)。这种限制有点多。 所以楼上的某些大哥们,不要太武断,了解了再说。
Roy_Smiling 2011-07-09
  • 打赏
  • 举报
回复
我就分配了1G的内存。
hufeikong 2011-07-09
  • 打赏
  • 举报
回复
没拉出屎的话,不给冲水的。

---------------------
真经典!
Lactoferrin 2011-07-09
  • 打赏
  • 举报
回复
int main()
{
int i=1024*1024*1024;
//char *c=new char[i];
VirtualAlloc(0,i,MEM_COMMIT|MEM_RESERVE,PAGE_READWRITE);
getch();
return 0;
}
taskmgr
内存使用:656k 虚拟内存大小1049760k
加载更多回复(83)

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧