• ベストアンサー

C言語のコンパイラについて教えてください。

C言語の勉強をしてるのですが、コンパイルすると普通にミスは認められず表示されたので、実行してみて入力とかしてみたら、途中で画面に「問題が発生しました。ご不憫をおかけします。この問題をマイクロソフト社に送信してください。ってでちゃって、組んだプログラムのテストみたいなのを出来ないことが多々あるのです。これはいったいどのような事がおこってるのでしょう?Bolrand社のC++って書いてあるコンパイラを使用してます。コンパイルされたからってミスはなかったなんてことはないということでしょうか?? お返事よろしくお願いいたします。

  • yuki22
  • お礼率83% (159/190)

質問者が選んだベストアンサー

  • ベストアンサー
  • YamaYoshi
  • ベストアンサー率29% (91/313)
回答No.1

コンパイルエラーと実行エラーは違いますよ。 たとえば、 int *m = NULL; *m = 10; これだと、コンパイルは通りますが、実行時にエラーになります。 (アドレスの参考先がNULLなのに中身に物を入れようとしているから。) 簡単に言うと、実際に動かしてみないと、アプリにも分からないバグもありえるということですね。 VC++みたいな、デバッグ機能のあるもので、ステップ実行ができれば簡単に洗い出しができたりします。

yuki22
質問者

お礼

そうでしたか。 初心者なので、もしかしたらコンパイラが壊れてるの?? っておもっちゃったのです。 安心しました。 ありがとうございました。

その他の回答 (4)

  • K-1
  • ベストアンサー率21% (832/3844)
回答No.5

コンパイルが出来たということは、C言語表記としてエラーが無かっただけで、ソフトウェアの動作が保障されるわけではありません。 文章を書いた。 誤字脱字も無い。送り仮名や単語の使い方も問題ない。 でも書かれている内容に間違いがある。 そういうことです。

yuki22
質問者

お礼

まだよく理解してないってことなのですね。 また解らないことがありましたらよろしくです。 ありがとうございました。

回答No.4

どこでエラーが起きてるか分からないのなら、手当たり次第にprintfを入れてその場所を特定するおいうことも……大変面倒ですが(ーー; #2の方も仰っていますが、  コンパイルされた = ミスはなかった ではありません。

yuki22
質問者

お礼

そういう方法もあるのですね、面倒ですか^^; お返事ありがとうです。

  • mac_res
  • ベストアンサー率36% (568/1571)
回答No.3

実行時エラーですね。 Cygwinをinstallして、gcc, g++でコンパイル、gdbでデバッグすることをお勧めします。

yuki22
質問者

お礼

ごめんなさい、初心者なのでちょっと英語のところがどのような意味なのかわからないです^^; でも、お返事ありがとうございました。

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.2

C言語はもともとプロが使うために作られた言語です。 しかもOSを書くため、オブジェクトができるだけ小さくなるようにしています。 このため普通の言語と違って実行時のエラーチェックが殆んどして有りません。 ですから、初心者はデバッグモードでコンパイルするか、 あるいはインタープリターを使ってデバッグしないと大変です。 コンパイルエラーをつぶすのは第1段階、実行エラーをつぶすのが第2段階、 これはどの言語でも常識です。

yuki22
質問者

お礼

うう、常識でしたか、ごめんなさい。 ご指導ありがとうございました。

関連するQ&A

  • FedraCore4でのC言語

    簡単なCのプログラムをテストしようとしたのですが、コンパイラが見つかりません。 パッケージを全部インストールしていない状況でC言語のプログラムををコンパイルするにはどうすればよいのでしょうか?

  • C言語のコンパイラ設定について教えてください。

    猫でもわかるC言語のBorlandコンパイラをインストールしたのですが、参考書に載ってるとおりにソースを書いて実行したのですが、パスが設定されてないとかファイルが見つからないってでちゃうのです。つまりはコンパイルできないし、設定がちょっとわからないのです。 Borland社のコンパイラを使用したことがあり同じ経験を過去にお持ちの方いらっしゃいましたらアドバイスお願いします。また、JAVAの様な総合開発?できるみたいなフリーソフトがCでありましたらぜひぜひ教えてください。プロフェッショナルで、しかもこの様な質問も笑って答えていただけるようなすごい人、どうかよろしくお願いいたします。

  • コンパイラについて

    C言語初心者です。 コンパイルしたときにたまに出る、タイムスタンプが変更していません??みたいなのが出るときがあるのですが、これって何なのでしょう?? この表示がでたあとは、どう考えても間違っていないプログラムを組んでもコンパイル自体は通るのですが、実行しますとエラー、この情報を機密事項として送信しますか?と、出てしまうのです。 もしかしたら実行エラーしたあとの処理が何も変わってないって意味なのでしょうか??(この後、何をしても 実行時エラーで送信しますか?って出ちゃいます) また、これが出てしまった後どうすれば普通の結果が出せるようになるのでしょう??コンパイラの名前とか書いたほうがよろしいのでしょうか?何か不都合がありましたら補足させていただきます どうかよろしくお願いいたします。

  • Cコンパイラ(gcc)について

    はじめまして。 C言語のコンパイラについてお尋ねしても宜しいでしょうか。 以下のファイルが存在します。 ・test.c(C言語のソースファイル) ・test.exe(上記ソースをコンパイルしたもの。Windows環境で現在稼動してます) test.cの中身を一部変更し、コンパイルする必要があるのですが、 (恥ずかしながら、コンパイルした人間はもう居ないので) 何のコンパイラを使ったか、判りません。 コンパイルするときに使用したであろうコマンドがあります。 gcc test.c -WALL -03 -o test.exe 察するに、gccというコンパイラを使用したと思い MiniGW (http://yanchde.gozaru.jp/mingw/wingw_start.html) を使用してコンパイルをしてみました。 コンパイルは通るのですが、出来上がるexeファイルのサイズが 非常に小さいです。 (オリジナルのtest.exeは500KB以上ありますが、今回コンパイルで出来たものは40kbほどです) この場合、、オリジナルのtest.exeと今回コンパイルしたexeは 異なる挙動をする可能性はありますでしょうか。。 初歩的な質問で恐縮ですが、どうかご教授頂けると、幸いです。

  • linuxからC言語のコンパイラー使えますか?

    仕事でunixからC言語のコンパイラーをつかっています。 WindowsXPからC言語となるとすぐVISUALC++を想像してしまい 単純なunixでつかっているようなものが見当たりません。 linuxはつかったことないのですが、unixと似ているとききました。 unixと同じく標準でcコンパイラーは付属しているのでしょうか? ちなみにC言語を使いテキストファイルを編集(並び替えやあるワードの抜き出しやあるワードの置換)するプログラムを組み実行しています。

  • コンパイラについて

    コンパイラについて プログラム初心者です。 マイクロ社のVisual C++2010Expressをインストールしたのですが、大変重いです。 父のPCなのであまり負担をかけたくないです。 言語はCを勉強中なのですが、取り合えずプログラムが書ける、軽いコンパイラってありますか? 調べてみたのですが、有料かフリーかよくわからなくて、なるべくフリーを探しています。 OSはXPです。見当違いのことを書いてるかもしれませんが、よろしくお願いしますm(__)m

  • コンパイラについて

    C言語で書かれたアプリケーションを利用するにはCのコンパイラが必要ですよね。ということはどんなOSにもCなりJAVAなりのコンパイラが搭載されているのでしょうか?だとしたらなぜ自分で書いたプログラムをコンパイルするときにOSが利用しているコンパイラを使えないのでしょうか?

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

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

  • C言語について

    最近C言語でプログラミングを試みようとしてるのですが、コンパイルの時点でよく分かりません。 どのようなソフトでどのようにインストール・設定し、どのようにコンパイルするかなど、C言語でのプログラムのコンパイルから実行までを詳しく教えてください。

  • gccコンパイラー

    今、gccでコンパイルするc言語のコンパイラーを探しています。 フリーでダウンロードできるいいコンパイラーはないでしょうか。 お勧めなどがありましたら教えてほしいです。 あと、C言語ではgccやbcc等のコンパイラーで プログラムソースの書き方容が変わったりするものなのでしょうか? 一応、ボーランド?のコンパイラーは持ってます。 ただ、今度OJTでUNIX環境のc言語開発の現場に行く事になり gccでコンパイルするもので勉強しとくようにいわれています。 宜しくお願いします。

専門家に質問してみよう