我有一個std ::向量會引起一些很奇怪的賽格故障向量::明確()導致賽格故障
//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);
}
在什麼情況下可能會向量::明確()導致賽格故障?我最初有
void A::set(const vector<float>& data){
this->data = data;
}
並且有同樣的問題。我切換到上面進行調試。 這是在海灣合作委員會4.7.2,x86_64
太多的參數稱爲'數據'和數據成員'數據'...你爲什麼給自己造成歧義?我的建議是將成員'data'重命名爲'data_' – LihO 2013-03-08 08:46:25
很可能你有某處存在內存損壞。你錯誤地覆蓋了A對象佔用的內存。 – user1610015 2013-03-08 08:46:30
但我同意,上面的代碼不負責segfault,問題在別的地方。 – LihO 2013-03-08 08:47:45