我遇到了“*** glibc detected *** /home/ubuntu[....] : double free or corruption (fasttop) : 0x09851168 ***”问题。
调试我发现了似乎是问题根源的行:
data[i]->~Class();
指的是
class Class {
public:
Class();
Class(char *name, double value);
virtual ~Class();
char *name;
double value;
private:
};
然后
Class::Class() {
}
Class::Class(char* name, double value){
this->name = new char[std::strlen(name)];
std::strcpy(this->name, name);
this->value = value;
}
Class::~Class() {
delete name;
}
现在,显然我在那里做错了什么。谁能告诉我什么?