注册 登录
编程论坛 C++教室

[求助]请问内存分配自己会不会自动累加

cpluslover 发布于 2007-03-30 16:20, 670 次点击

#include<iostream.h>
#include<stdlib.h>

int main()
{
long int n=1;
while(1)
{
int *p=new int[n*100];
if(!p)
{
cout<<"stack failed!"<<'\n'
<<"the volumn of it is "
<<n*400<<"byte"<<endl; //不知道是怎么样分内存的,
//如果要连续起来的话把n换成n*(n+1)/2
exit(1);
}

++n;
}


return 0;
}



比如上面我写的小程序,我的意思是如果他会自动累加的话就应该输出n*(n+1)/2 *400;
而不是什么n*400

做实验也不好做,有会知道吗

5 回复
#2
RL7202007-03-30 16:33
亲娘勒。。这咋光new..
没看懂程序啥意思。。。
-.-
#3
wfpb2007-03-30 17:42
应该是(n-1)*n/2*100*sizeof(int)吧?
#4
飘零的叶子2007-04-03 12:25

new是随机分配的哈,?? 不懂你为什么要这么弄。它分配的是内存哪空了就分配哪。连续的也有可能,但可能性很低!尤其是你要把所有内存都分配了那更不可能了,输出的不可能是连续的 和不能为(n-1)*n/2

#5
cpluslover2007-04-03 12:58
我当然知道内存可以不是连续分配的,尤其是大块内存基本都不能连续申请到
我的意思只是粗略的估计下电脑中还有多少内存可以用
并不需要非常准确的值
但并不知道每次申请后是不是就自己释放了
所以不知道每次申请的要不要加
释放的话应该就不要加了,没有释放的话就要把每一次申请的全部加起来就是大约可用的内存,不知道这个想法对不对,
有其它估计的方法吗?有的话也可以帖出来,交流一下嘛

#6
飘零的叶子2007-04-03 15:55
感觉这样写的程序不怎么对 再研究研究哈 
1