我正在尝试解决内存使用限制为0.75 mb的问题 我不能制作大小为100 000的数组,因为它不在0.75 mb之内
我的计划如下:
#include <iostream>
#include <String>
using namespace std;
void main() {
char temp;
int temp1, num, k, z, val__=0;
cin >> num;
int* value = new int[94000];
short* place = new short[94000];
for (int i = 0; i< num; i++) {
cin >> temp>>temp;
if (temp == 'U') {
cin >> temp >> temp >> place[val__] >> value[val__++];
}
else {
cin >> temp >> temp1;
for (k = val__-1; k >=0; k-- ) {
if (place[k]==temp1) {
cout << value[k]<<endl;
for (z = k; z < val__; z++) {
value[z]=value[z+1];
place[z]=place[z+1];
}
val__--;
k = 0;
}
}
}
}
}
如何计算C ++程序的全局内存使用量,以及如何减少使用的内存量? 在一个数组中,我存储从0到1000的数字;在第二个我存储的数字从0到10 ^ 9
答案 0 :(得分:1)
你有两个数组,假设sizeof(int)是4个字节,sizeof(short)是2个字节 然后你只使用600000字节加一点点进行堆管理。 我认为,其他内存需要堆栈或其他类型的内存。 可能你必须减少堆栈?
答案 1 :(得分:0)
我不确定你要解决的是什么。 但是,如果你需要的内存超过你可以分配的内存, (并假设您不想增加分配的内存大小) 您可能希望将数据保存在数据库或文件中, 只读取处理所需的数组部分 在将更多项目加载到程序运行内存之前,将它们从内存中释放出来。