• ベストアンサー

0除算して、落ちるプログラムと落ちないプログラム

eroermineの回答

  • eroermine
  • ベストアンサー率18% (83/444)
回答No.4

intel 86系の場合整数でゼロ除算しても SIGFPEが出ますね。 だからこれをつければ落ちない。 signal(SIGFPE, ゼロ除算処理関数のアドレス);

関連するQ&A

  • 0除算を判定したい

    0除算とは例えば10を0で割ったら結果が無限大になるように、ある数を0で割った時に起こる現象です。 しばしばこの0除算に悩まされるので、ある式を代入したらそれが0除算であるかどうかを判定できたらと思いました。 そこで下のような関数を作れたらと思っているのですが、 ある式を見てその結果が0除算であるかを判定する方法はありますでしょうか? int isDivide0( float val ) {   if ( val == 0除算 )     return 1;   else     return 0; } int main() {   isDivide0( 10 / 0 ); } 尚、開発環境はVisual Studio2005です。

  • 旧c++のプログラムを動かす方法を教えてください

    c++の実行時にエラーが出てしまいます。 エラーの原因をインターネットで検索しまして、原因は「iostream」ではなく旧バージョンの「iostream.h」をインクルードしているためであることが判明しました。 私はプログラムの記述を変更することなく、旧c++のプログラムを実行したいのですが、やり方が分かりません。 旧c++のコンパイラを探してインストールしようと考えましたが、どれが旧c++のコンパイラなのか分かりませんでした。 解決方法をご存知の方がいらっしゃいましたら、回答よろしくお願いします。 pc環境はVine linux4.2です。

  • JavaでCプログラムをコンパイルするには

    linux環境で、javaによって別に作ってあるCのプログラムをコンパイルしたいのですが、execを使用して、 Runtime.getRuntime().exec("cc sample.c"); とするとコンパイルできません。 恐らくコマンドプロンプトなどを起動して指定してやればできると思うのですが、現在linux環境にないのでわかりません。 gnome-terminalかなにかだったような気がするのですが・・・。 どなたか教えていただければ幸いです。

  • プログラムの開発環境について

    みなさんは開発環境を整えてプログラムに取り掛かってくれと言われたらどのような開発環境を整えますか? 私は開発環境のことに詳しくないので、LinuxかFeeBSD上でemacs使ってプログラムし、バグがあったらgdb使うといった感じです。コンパイラはOSに初めから付属のgccを使っています。UNIX系のOSだとCもC++もデフォルトでプログラムできるので。 最近はEclipsという統合開発環境が雑誌などに取り上げられていて、javaを初めとしてプラグインを入れればCやC++、PHPなどもプログラムできるようなんですが、私もそろそろ便利なものを使っていくべきかなーと考えています。現状ではCしか取り扱っていませんが、javaやC++、PHPなどの多言語を一つの開発環境で取り扱えるとありがたいです。もちろん一切お金をかけずに開発環境を整えられればいいのですが、Windows環境でVisual Stdioなどを導入するなどの意見でも構いません。これから主流になるであろうまたは人気が高いであろう開発環境を紹介していただければ幸いです。

  • .NET エクセルで除算するには?

    いつもお世話になっています。 下記環境でエクセルを出力するシステムをつくっています。 開発環境 : WindowsXP       office2003 言語   : VB.NET 出力時にエクセル上で除算してパーセンテージを表示、 分子または分母がない場合は「0」と表示、 しようとしているのですが、どうしてもエラーをはいてしまいます。 コードは、下記の通りです。 エクセル上ではうまくいくのですが、コードはNGでした。 IF(OR(" & A1 = 0 & "," & A2 = 0 & ",0," & A2 / A1 * 100 & ")" ご存知の方がおりましたら、ご教示御願いいたします。

  • プログラムで得られたdataをfileに書込みたい

    windowsXPで、コンパイラはボーランドのを使用しています。 プログラム中で、 for(i=1;i<10;i++) { printf("%f",x[i]); } と書いておいたら、 コマンドプロンプトにその結果が表示されます。 コマンドプロンプトに結果を書くのではなく、 指定したファイルに結果を書かせるコマンドがUNIXにはあると思うのですが、(学校ではLINUXを使っています) そのコマンドを私の環境で使うようにできるでしょうか? それがどのようなコマンド名だったか覚えていないのですが、 ご存知のかた、よろしくお願いします。

  • WindowsXPでLinux

    WindoswXPでLinuxのTerminalを使用できるようにするにはどうすればよいでしょうか? Terminalに標準仕様のCのコンパイラも使えるようにしたいです。 要はXPでCのプログラムを組みたいのですが、最終的にはLinux環境で使用するので、なるべくLinuxに近づけたいのです。 どなたかいい方法を教えてください。

  • GNUコンパイラとIntelコンパイラの違いについて

    今回fortranとC言語で書かれたWindows用プログラムをLinux用に移植することになりました。GNUのコンパイラを使用し無事コンパイルできたので実行したのですが"Segmentation fault"となりうまく実行できませんでした。そこで試しにIntelのコンパイラを使用しコンパイルしてみたところGNUのときとは違い"Segmentation fault"とは出ず、プログラム内のエラーチェックに引っかかり止ってしまいました。同じソースコードにもかかわらず止まる箇所が異なります。 今まで考えたことがなかったのですがGNUとIntelのコンパイラの違いはなんなのでしょうか?また、この二つ以外にいいコンパイラはあるのでしょうか?

  • MacでC++プログラム

    MacでC++プログラムをやろうと思うのですが、いままでVC++を使っていたので、 なにかそれに似た環境でできないものでしょうか? 実際にやってらっしゃる方がいらっしゃれば教えてください。 あと、CodeWarrier(←スペル?)ってありますよね?あれはいったいどんなものなんでしょうか?C(C++)のコンパイラみたいに考えていいのですか?

  • LinuxOSみたいな巨大なものは統合環境で作られている?

    Linuxは巨大なプログラムだと思うのですが、これを作ったりメンテナンスしているプログラマーの方々は、どういう環境でプログラムしているのでしょうか?(Mozillaについても同じ疑問があります。) Windowsのアプリケーションだと、ほとんどのベンダーはマイクロソフトの統合環境を使って開発していますよね? Linuxは膨大なプログラムコードが必要なので、統合環境みたいな便利なツールがないと厳しいと思うのですが、どうなのでしょうか?統合環境と言っても、そもそも統合環境を作るにはOSが必要だし、不思議です。 それともemacs+コンパイラ+デバッガみたいな基本的組み合わせ?