0

我正在尝试解决内存使用限制为 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 的数字

4

2 回答 2

1

你有两个数组,假设 sizeof(int) 是 4 个字节,而 sizeof(short) 是 2 个字节,那么你只使用 600000 个字节加上一点点用于堆管理。我认为,其他内存占用堆栈或其他类型的内存。可能你必须减少堆栈?

于 2013-03-17T20:30:32.347 回答
0

我不确定您要确切解决什么问题。但是,如果您需要的内存比您可以分配的更多,(并且假设您不想增加分配的内存大小),那么您可能希望将数据保存在数据库或文件中,只读取数组的部分在将更多项目加载到程序运行内存中之前,您需要处理并从内存中释放它们。

于 2013-03-17T20:18:07.437 回答