У меня есть зЬй :: вектор, который вызывает некоторые очень странной SEG ошибкивектор :: ясно() вызывает ошибку сегм
//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);
}
При каких обстоятельствах возможно мог бы вектор :: Clear() вызывает ошибку сегм ? Первоначально у меня было
void A::set(const vector<float>& data){
this->data = data;
}
и была та же проблема. Я переключился на выше, чтобы отлаживать. Это на gcc 4.7.2, x86_64
Аргумент, называемый 'data' и элементом данных, называемым' data' тоже ... Почему вы вызываете эту двусмысленность для себя? Мое предложение состоит в том, чтобы переименовать данные 'data' в' data_' – LihO
Скорее всего, вы где-то повредили память. Вы неправильно переписываете память, занятую объектом A. – user1610015
Но я согласен, что код выше не несет ответственности за segfault, проблема в другом месте. – LihO