我在linux 64bit中有一个可用的c ++代码,我在QT Windows 32bit(虚拟机)中导出。为此,在我的程序的Windows中创建了一个带有QT的静态库,并将其包含在我的QT GUI中。问题是当我运行GUI时程序崩溃。
结构在其他地方用Eigen :: Vector2d和int定义,没有指针。
我的程序因此错误而崩溃
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Debuggen beendet
这意味着我没有足够的内存,但在我的Windows上我还剩1 GB而且我的程序只需要32MB。
我不知道我能做些什么来解决这个问题?有人有想法吗?
修改
class B {
std::vector<A> vec;
void add(int value, Eigen::Vector2d point);
}
B::add(int value, Eigen::Vector2d point)
Class A;
A.value=value;
A.point=point;
vec.push_back(A);
}
class A{ (only header file)
public:
int value;
Eigen::Vector2d point;
}
class C(){
void AddSomethingtoB(B& output)
}
A,B,C类是我的静态库,包含在我的QT项目中。
现在我在主窗口上执行某项操作
int main(){
C c_class;
B b_class;
c_class.AddSomethingtoB(b_class);
}
非常有趣的想法,当我这样做时,我可以添加一个元素,之后我的矢量大小为1431655766。
但是当我做的时候
int main(){
C c_class;
B b_class;
std::cout << "size" << b_class.vec.size() << std::endl;
c_class.AddSomethingtoB(b_class);
}
我的程序运行没有任何问题。这里有什么问题?我的“主”可以为我的载体预留足够的空间吗?或者这是一个初始化问题?我不知道