我将图像存储在内存中,因此需要30mb +来存储它,(2048 * 2048甚至更多,当导出为.bmp时)所以我需要增加堆栈大小。 (或者我读过。)我读过的帖子说改变了“堆积”的保留大小'和'堆栈提交大小,'但我不想在不知情的情况下改变这样的设置。
我处理的是一个2048 ^ 2的二维数组(36mb字节,因为它的结构类型为struct,结构中有3个字符),当保存它时,它的1D数组大小为38000000字节到暂时将所有东西存放在内存中。
有人可以告诉我如何将堆栈大小增加到这个数量吗?
答案 0 :(得分:2)
不要使用堆栈分配的数组。这就是你得到的,例如,在下面的代码中:
void func()
{
int some_big_array[LOTS_OF_ELEMENTS];
}
相反,在堆上分配它。现代C ++的做法是使用std::vector
:
void func()
{
std::vector<int> some_big_vector(LOTS_OF_ELEMENTS);
}
在常见情况下,30mb是堆的少量内存。