假设我有以下代码
class simple_class
{
public:
simple_class() { }
void start()
{
boost::thread simple_thread(&simple_class::expand,this);
}
void expand()
{
while(1)
{
this->private_vector.push_back((int)1);
}
}
private:
std::vector<int> private_vector;
};
int main()
{
simple_class* obj1 = new simple_class();
simple_class* obj2 = new simple_class();
obj1->start();
obj2->start();
while(1) {}
}
显然,这个程序在某些时候内存不足,应该抛出一个std::bad_alloc
。但我的问题如下:
答案 0 :(得分:0)
我通常不会回答问题,但我几乎100%肯定答案是:
“否”。您正在使用new运算符和STL对象。正如你所指出的,你必须担心的最重要的事情就是很快就会耗尽内存。
不再。我对Eigen矩阵一无所知,但内存对齐将由OS和编译器决定,而不是由语言决定。