为什么设置const char*会出现分割错误?
Why does setting const char* gives segmentation fault?
我有这个简单的函数
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的行中得到分段错误。我错过了一些非常基本的东西,但我无法弄清楚。我检查了关于分割错误的其他问题,我知道这有时是关于指针的滥用。但我还是不明白
您从未创建类MyException
的实例,因此当您尝试调用SetMessage
时,您没有对象可以调用它。
这样做:
struct MyException socketException;
...
socketException.SetMessage("socket connection error");
throw socketException;
相关文章:
- C++映射分割错误(核心转储)
- 由cin中的字符串中未捕获空白引起的分割错误
- 删除映射和分割错误中的一个过去结束元素
- 在指向函数中读取变量时出现分割错误
- 在链表中的第 n 位插入显示分割错误
- 较高值 n 的分割错误(例如 n=999997)
- 尝试通过memcpy复制大尺寸浮点向量时的分割错误
- 分割错误:向量中的擦除功能
- 向量向量的分割错误
- 我在C++中编写了一个方法来打印树类的预序,但它显示了分割错误
- C ++分割错误,为什么使用"long long"我没有得到答案?
- 在尝试使用递归查找集合子集的总数时,我遇到了分割错误
- 分割错误 11:尝试使用 cin 输入 B[1] 时
- 集合布局上的 Qt 分割错误
- 高达20亿的筛子会产生分割错误
- 对向量使用推回函数时的分割错误
- 绘制精灵会导致分割错误
- 将矢量的整数内容打印为字符串会导致分割错误
- 分割错误:使用向量时为 11 c++
- 结构的分割错误错误