У меня есть эта простая функцияПочему установка const char * дает ошибку сегментации?
struct MyException : public exception
{
const char *errorMessage = NULL;
void SetMessage(const char* message)
{
errorMessage = message;
}
const char * what() const throw()
{
return errorMessage;
}
};
struct MyException *socketException;
и когда я называю
socketException->SetMessage("socket connection error");
throw *socketException;
Я получаю ошибку сегментации прямо на линии, где я устанавливаю сообщение для ErrorMessage. Мне не хватает чего-то очень фундаментального, но я не мог понять это. Я проверил другие вопросы об ошибке сегментации, и я знаю, что это иногда связано с неправильным использованием указателей. Но я до сих пор этого не понимаю.
Вы делаете что-то другое, то, что вы не показывают нам, чтобы вызвать аварию. –
Этот код [работает] (http://rextester.com/WMIY66402). Проблема должна быть где-то в коде, который вы не показывали. –
@ DOUGLASO.MOEN Нет, OP пытается переназначить указатель (который первоначально указывает на 'NULL'), чтобы указать куда-то еще. –