如何在C++中返回自定义类中的分段错误?
How to return Segmentation fault in my custom class in C++?
我正在使用链表手动构建堆栈类。我想在空堆栈上调用 top(( 函数时返回分段错误。我该怎么做?或者我可以返回的其他一些错误。
分段错误由硬件触发并由操作系统处理。您不会手动触发它们。
你可以抛出一个异常:http://www.cplusplus.com/doc/tutorial/exceptions/或者你可以决定一些指示错误的值并返回它。
如果在列表为空时有一个指向第一个元素的指针为 null 或悬空(即指向未初始化/释放的内存(,您也可以取消引用它,就好像有一个值一样。这有时会导致分段错误,有时会返回虚假数据。在这种情况下,用户不能在空列表中调用 top。通常,代码不保证在某些情况下会出错。相反,当硬件设法捕获错误的内存访问时,有时会发生这种情况。
如果您发布代码,则更容易说明如何在具体情况下报告错误。
我该怎么做?
你可以raise(SIGSEGV)
.或者abort()
执行。
您还可以强制从无效的内存地址读取,例如从空指针读取,例如:*(volatile int*)0;
。
或者我可以返回的其他一些错误。
您绝对不应该故意在程序中造成分段错误情况。请改用例外。
相关文章:
- 在某些循环内使用vector.push_back时出现分段错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 当我的阵列太大时出现分段错误
- 分段错误当我试图运行程序时出错
- 在c++中初始化矩阵时出现分段错误(核心转储)
- 尝试使用集合函数时出现分段错误
- 我无法缩小此分段错误的原因
- g++的分段错误(在NaN上使用to_string两次时)
- 我是如何在这段代码中出现分段错误的
- 创建结构的数组时遇到分段错误
- 在c++中键入向量中的所有值后,得到分段错误(核心转储)
- 在 c++ 中实现 Trie 时出现分段错误
- 为什么 fstream 在打开带有格式的文件时会导致分段错误?
- 为什么我遇到分段错误?
- 动态类的分段错误(家庭作业问题)
- 分段错误 - 读取初始化指针的数组
- 如何摆脱C ++中的分段错误错误?
- 使用 CTYPE 时出现分段错误
- 为什么代码给出分段错误?