我知道这是一个奇怪的问题,但我正在制作一个函数,它应该使程序崩溃并发送错误。我所做的被除以零,这给出了“浮点错误”。
有没有办法强制 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/