为何new了这么多,只占这么点内存
为什么new了这么多,只占这么点内存C/C++ codeint i1024*1024*1024char *cnew char[i]为什么只占800多K
为什么new了这么多,只占这么点内存
C/C++ codeint i=1024*1024*1024;char *c=new char[i];
为什么只占800多K内存
[解决办法]你memset下。。
因为你没使用这些内存,所以只是让你占个位置。。没拉出屎的话,不给冲水的。
[解决办法]你怎么查看出是800多K的
[解决办法]还有这种事啊?
跟编译选项有关吗
我的怎么占用空间了.
[解决办法][解决办法]你的i能被这么大的值赋值吗?
[解决办法][解决办法]申请这么多内存干嘛?搞机器么?哈哈
[解决办法][解决办法]有和new的底层实现有关。
有的系统api可以提交内存并且锁定在内存,不让换页出去的。
[解决办法]你是如何看的?
[解决办法]差不多1G了
[解决办法][解决办法][解决办法]貌似M$Win下, 大内存请求是个mmap, 要等你真正访问了,在缺页时才会真正的占用内存...
[解决办法]你申请个 new char[1024];然后再看下呢
[解决办法]你拿系统带的 任务管理器 查看下这个进程占用的内存就好啦
[解决办法]1楼和15楼是明白人,其他的不用看
[解决办法]金山卫士有这功能。。
[解决办法]new 的内存是立即申请的, 和用不用 memset 无关.
你的程序是不是没有其它代码了, 而且用 Debug 菜单下的 Run 来执行的? 你的问题应该是你申请完内存马上程序就退出了, 所以你看不到运行过程中占用的内存.
你在程序后面加一句 system("pause"); 然后暂停的时候看内存, 就会发现占用的 1G 多, 按任意键再看内存, 降到 800 多 K.
[解决办法]有可能申请失败要判断下
if(c!=NULL)