[英]Memory management with std::vector and boost::thread
假設我有以下代碼
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
。 但是我的問題是:
我通常不是一個回答問題的人,但是我幾乎100%確信答案是:
“沒有。” 您正在使用new運算符和STL對象。 正如您指出的那樣,您最需要擔心的最大問題就是內存快要用完了。
再沒有 我對本征矩陣一無所知,但是內存對齊將由操作系統和編譯器而不是語言決定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.