小编Zor*_*ran的帖子

在c ++中分配大小为10000 10000 3的3维向量

我正在制作一个图片编辑程序,我一直在分配内存.我不知道发生了什么事.

好的..所以当我这样做时:

std::vector<unsigned char> h;
for (int a = 0; a < 10000 * 10000 * 3; a++) {
    h.push_back(0);
}
Run Code Online (Sandbox Code Playgroud)

这很好(对不起我不得不),但当我这样做时:

std::vector<std::vector<std::vector<unsigned char>>> h;
for (uint32_t a = 0; a < 10000; a++) {
  h.push_back({});
  for (uint32_t b = 0; b < 10000; b++) {
    h.at(a).push_back({});
    for (uint32_t c = 0; c < 3; c++) {
      h.at(a).at(b).push_back(0xff);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我的内存使用情况爆炸,我收到错误:Microsoft C++异常:std :: bad_alloc在内存位置0x009CF51C

我正在使用.bmp.

目前,代码处于测试模式,所以它基本上是一个巨大的混乱...我15岁,所以不要指望我.

我正在寻找解决方案,但我发现的只是如何处理大整数等等......

如果你可以给我另一种解决方案,但我希望我的代码能够像初学者一样友好.

c++

0
推荐指数
1
解决办法
104
查看次数

标签 统计

c++ ×1