C++ 减少程序的内存使用
我正在尝试解决一个内存使用限制为0.75 mb的问题 我无法生成大小为100000的数组,因为它不在0.75 mb之内 我的计划如下:C++ 减少程序的内存使用,c++,memory,numbers,int,C++,Memory,Numbers,Int,我正在尝试解决一个内存使用限制为0.75 mb的问题 我无法生成大小为100000的数组,因为它不在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]; shor
#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;
}
}
}
}
}
#包括
#包括
使用名称空间std;
void main(){
焦炭温度;
int temp1,num,k,z,val_;=0;
cin>>num;
整数*值=新整数[94000];
短*位=新短[94000];
for(int i=0;i>温度>>温度;
如果(温度='U'){
cin>>温度>>温度>>位置[val____;]>>值[val___;++];
}
否则{
cin>>温度>>温度1;
对于(k=val_u;-1;k>=0;k--){
if(place[k]==temp1){
我不确定你到底想解决什么问题。
但是,如果您需要的内存超过了您可以分配的内存,
(假设您不想增加分配的内存大小)
而不是将数据保存到数据库或文件中,
仅读取处理和存储所需的阵列部分
在将更多项目加载到运行内存的程序之前,请先从内存中释放它们。您有两个数组,假设sizeof(int)为4字节,sizeof(short)为2字节
然后只使用600000字节,再加上一点堆管理。
我认为,其他内存占用堆栈或其他类型的内存。
可能您必须减少堆栈?val\uuu
是一个保留的标识符。您需要减少内存使用量,还是想办法增加堆栈大小?我需要一个程序,它可以做同样的事情,但使用更少的内存:)为了能够创建大小为100000的数组,请用文字和注释描述您的程序应该做什么更容易看到如何改进它。而且这个问题可能更适合于.main()应该返回int而不是voidyes。在这种情况下,此程序中最消耗堆栈的部分是什么,以及如何减小其大小设置堆栈大小平台和特定工具。我认为您不需要太大的堆栈,使用Debugger可以估计合理的堆栈大小。