Ниже фрагмент кода запускается в linux, и он сообщает о сбое сегментации (Core Dump). Я обнаружил, что ошибка возникает при вызове деструктора, но не может понять, почему. Может кто-нибудь помочь объяснить это?Почему этот код дает ошибку сегментации
class TStringPair{
public:
TStringPair(){
memset(this, 0, sizeof(TStringPair));
}
string a;
string b;
};
int main (int argc, char* argv[])
{
TStringPair test;
return 0;
}
C++ == не использовать memset – aaronman
По умолчанию класс инициализируется значениями по умолчанию, равными 0 в большинстве случаев. Использование memset уничтожает любые значения, отличные от 0, которые должны были быть там. –