非常に奇妙なセグメンテーション違反を引き起こしている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;
}
同じ問題がありました。上記に切り替えてデバッグしました。これはgcc4.7.2、x86_64にあります