#include <iostream>
#include <cassert>
#include <vector>
#include <ctime>
#include <cstdlib>
#include <Windows.h>
using namespace std;
char randomLetter()
{
srand(time(0));
char rValue;
while(1)
if((rValue=(rand()/129)) > 31)
return rValue;
}
int main()
{
vector<char> meegaString;
for(int i=0; i < 10000000000; i++)
{
meegaString.push_back(randomLetter());
if(!(i%10000000))
cout<<"There are: " <<i+1<<" chars in the list"<<endl;
}
system("pause");
return 0;
}
运行此程序之前的 RAM 使用量约为 2500/8000 MB。当涉及到 3200 时,会抛出以下异常:
资源 gormandizer.exe 中 0x773c15de 处的未处理异常:Microsoft C++ 异常:内存位置 0x0045f864 处的 std::bad_alloc..
1) 为什么这个程序没有填满整个可用内存,尽管它是在 64 位操作系统上运行的?
2) 为什么只有 26% 的处理器(英特尔酷睿 i5)在使用?