2016-03-22 2 views
-2

奇妙な質問ですが、プログラムをクラッシュさせてエラーを送信する関数を作っています。私がやったことはゼロで割られ、 "浮動小数点エラー"が出ます。Cが範囲外のエラーを出してクラッシュするように強制する

Cが "Index out of bound"のようなエラーを出させたり、そのようなことを強制する方法はありますか? - またはいくつかのポインタマジックで "セグメンテーションフォールト"に最適なエラーですか?

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

EDIT: セグメント違反が原因です。

+0

Linux? Windows?マックOS? – Joe

+0

_only_ 'int * p =(int *)0;'あなたにsegfaultを与えましたか? –

+1

「最適なエラー」とはどういう意味ですか?何に最適ですか? – alain

答えて

2

UNIXベースのオペレーティングシステムでは、ほとんどのエラーは信号として表されます。自分自身にシグナルを送ることができ、そのイベントが起こったときにアプリケーションとO/Sによって解釈されます。だから、あなたが行うことができます関数からワンセグ障害をエミュレートする

#include <signal.h> 

raise(SIGSEGV); 

あなたは浮動小数点例外のためにこのようなSIGFPEと同じように他のエラーをシミュレートすることができ、SIGSYSは悪いシステムのためなどの呼び出し。

+0

ありがとうございます。これはきれいです。 – user3265569

関連する問題