我有一个 std::vector 导致一些非常奇怪的段错误
//A.h
class A{
private:
std::vector<float> data;
public:
void set(const std::vector<float>& data);
};
//A.cpp
void A::set(const vector<float>& data){
this->data.clear(); // crashes on this line
for(float f : data) this->data.push_back(f);
}
在什么情况下 vector::clear() 会导致段错误?我最初有
void A::set(const vector<float>& data){
this->data = data;
}
并有同样的问题。我切换到上面进行调试。这是在 gcc 4.7.2、x86_64 上