Я работаю над большим проектом, и строка, похожая на newVec.push_back(vec[i]);
, вызывает ошибку terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc
.
Однако я могу не воспроизвести ошибку в свернутом примере, но код выглядит примерно так:
#include<vector>
#include<iostream>
using namespace std;
class MyClass {
public:
vector<int> vec{1,2,3};
};
class MyClassTwo {
public:
vector<int> vec;
};
vector<int> doSometing(const vector<int> vec) {
vector<int> newVec;
for(int i = 0; i < vec.size(); i++) {
newVec.push_back(vec[i]); //causes: terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc
}
return newVec;
}
int main() {
MyClass c;
MyClassTwo cTwo;
cTwo.vec = doSometing(c.vec);
cout << cTwo.vec[0] << endl;
}
У кого-то есть идея, что я должен проверить?