小编cla*_*nes的帖子

C++传递vector <vector <STRUCT>>进行修改

让我说我有一个

vector<vector<foobar> > vector2D(3);
for(int i=0;i<3;i++)
   vector2D[i].resize(3);
Run Code Online (Sandbox Code Playgroud)

因此,总共包含9种foobar元素的3x3载体.

我知道想要将"vector2D"传递给一个函数来修改"vector2D"中的一些值.例如,如果foobar包含

struct foobar{
       int *someArray;
       bool someBool;
}
Run Code Online (Sandbox Code Playgroud)

我想将"vector2D"传递给修改vector2D的函数,如下所示:

vector2D[0][0].someArray = new int[100];
vector2D[0][0].someArray[49] = 1;
Run Code Online (Sandbox Code Playgroud)

该函数不应返回任何内容(通过引用调用).

这甚至可能吗?

c++ vector pass-by-reference

2
推荐指数
1
解决办法
800
查看次数

当"空闲"内存为零但是备用内存仍然可用时,c ++程序崩溃

我有点问题:

我需要将大约260mb的数据加载到一个struct(带有fread)中.Windows资源管理告诉我,我有:

  • 2346mb内存正在使用中
  • 1478mb内存处于待机状态
  • 248mb无内存

但是,当我运行程序并加载数据时,程序在没有剩余"空闲"内存的位置崩溃.还剩下大约1200mb的待机内存.

我想,当free mem为空时,它会自动将备用内存交换到磁盘并释放更多内存吗?

有什么方法可以避免这个问题,还是我做错了什么?

c++ out-of-memory

2
推荐指数
1
解决办法
384
查看次数

标签 统计

c++ ×2

out-of-memory ×1

pass-by-reference ×1

vector ×1