c - 强制 C 发生越界错误并崩溃

标签 c error-handling

我知道这是一个奇怪的问题,但我正在制作一个函数,它应该使程序崩溃并发送错误。我所做的被除以零,这给出了“浮点错误”。

有没有办法强制 C 给出“索引越界”之类的错误或类似的错误? - 或者最适合的错误是带有某种指针魔法的“段错误”?

int a = 10/0;       //Floating point error
//int *p = (int *)0;  //Segmentation fault

编辑: 段错误是由另一件事引起的!

最佳答案

在基于 UNIX 的操作系统中,大多数错误都表示为信号。您可以向自己发送一个信号,应用程序和操作系统会将其解释为该事件已发生。

因此,要模拟函数中的段错误,您可以执行以下操作:

#include <signal.h>

raise(SIGSEGV);

您可以用相同的方式模拟其他错误,例如浮点异常的 SIGFPE、错误的系统调用的 SIGSYS 等。

关于c - 强制 C 发生越界错误并崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36151855/

相关文章:

c - 可执行文件在编译机上运行,​​而不是在第二台机器上运行

c - 我怎样才能使用c获取连接在同一网络中的机器的名称和IP地址?

node.js - 403禁止+ Nginx +虚拟主机配置+ NodeJS

cakephp - 在 CakePHP 中禁用错误​​报告时出错

error-handling - 无法导入Silhouette Visualizer-几乎尝试了所有操作

在C中将UTC时间转换为unix时间戳

c - 如何释放 C 中的 union 数组?

python - 如何在Django和Django Rest框架中覆盖/自定义所有服务器错误

c - 指针算术 : address with no assignment holds value of another address

javascript - 延迟解析始终在 try catch 内