- ベストアンサー
C言語のコンパイラについて教えてください。
C言語の勉強をしてるのですが、コンパイルすると普通にミスは認められず表示されたので、実行してみて入力とかしてみたら、途中で画面に「問題が発生しました。ご不憫をおかけします。この問題をマイクロソフト社に送信してください。ってでちゃって、組んだプログラムのテストみたいなのを出来ないことが多々あるのです。これはいったいどのような事がおこってるのでしょう?Bolrand社のC++って書いてあるコンパイラを使用してます。コンパイルされたからってミスはなかったなんてことはないということでしょうか?? お返事よろしくお願いいたします。
- yuki22
- お礼率83% (159/190)
- C・C++・C#
- 回答数5
- ありがとう数7
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
コンパイルエラーと実行エラーは違いますよ。 たとえば、 int *m = NULL; *m = 10; これだと、コンパイルは通りますが、実行時にエラーになります。 (アドレスの参考先がNULLなのに中身に物を入れようとしているから。) 簡単に言うと、実際に動かしてみないと、アプリにも分からないバグもありえるということですね。 VC++みたいな、デバッグ機能のあるもので、ステップ実行ができれば簡単に洗い出しができたりします。
その他の回答 (4)
- K-1
- ベストアンサー率21% (832/3844)
コンパイルが出来たということは、C言語表記としてエラーが無かっただけで、ソフトウェアの動作が保障されるわけではありません。 文章を書いた。 誤字脱字も無い。送り仮名や単語の使い方も問題ない。 でも書かれている内容に間違いがある。 そういうことです。
お礼
まだよく理解してないってことなのですね。 また解らないことがありましたらよろしくです。 ありがとうございました。
- Trick--x--
- ベストアンサー率26% (19/72)
どこでエラーが起きてるか分からないのなら、手当たり次第にprintfを入れてその場所を特定するおいうことも……大変面倒ですが(ーー; #2の方も仰っていますが、 コンパイルされた = ミスはなかった ではありません。
お礼
そういう方法もあるのですね、面倒ですか^^; お返事ありがとうです。
- mac_res
- ベストアンサー率36% (568/1571)
実行時エラーですね。 Cygwinをinstallして、gcc, g++でコンパイル、gdbでデバッグすることをお勧めします。
お礼
ごめんなさい、初心者なのでちょっと英語のところがどのような意味なのかわからないです^^; でも、お返事ありがとうございました。
- ymmasayan
- ベストアンサー率30% (2593/8599)
C言語はもともとプロが使うために作られた言語です。 しかもOSを書くため、オブジェクトができるだけ小さくなるようにしています。 このため普通の言語と違って実行時のエラーチェックが殆んどして有りません。 ですから、初心者はデバッグモードでコンパイルするか、 あるいはインタープリターを使ってデバッグしないと大変です。 コンパイルエラーをつぶすのは第1段階、実行エラーをつぶすのが第2段階、 これはどの言語でも常識です。
お礼
うう、常識でしたか、ごめんなさい。 ご指導ありがとうございました。
関連するQ&A
- FedraCore4でのC言語
簡単なCのプログラムをテストしようとしたのですが、コンパイラが見つかりません。 パッケージを全部インストールしていない状況でC言語のプログラムををコンパイルするにはどうすればよいのでしょうか?
- 締切済み
- Linux系OS
- C言語のコンパイラ設定について教えてください。
猫でもわかるC言語のBorlandコンパイラをインストールしたのですが、参考書に載ってるとおりにソースを書いて実行したのですが、パスが設定されてないとかファイルが見つからないってでちゃうのです。つまりはコンパイルできないし、設定がちょっとわからないのです。 Borland社のコンパイラを使用したことがあり同じ経験を過去にお持ちの方いらっしゃいましたらアドバイスお願いします。また、JAVAの様な総合開発?できるみたいなフリーソフトがCでありましたらぜひぜひ教えてください。プロフェッショナルで、しかもこの様な質問も笑って答えていただけるようなすごい人、どうかよろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- コンパイラについて
C言語初心者です。 コンパイルしたときにたまに出る、タイムスタンプが変更していません??みたいなのが出るときがあるのですが、これって何なのでしょう?? この表示がでたあとは、どう考えても間違っていないプログラムを組んでもコンパイル自体は通るのですが、実行しますとエラー、この情報を機密事項として送信しますか?と、出てしまうのです。 もしかしたら実行エラーしたあとの処理が何も変わってないって意味なのでしょうか??(この後、何をしても 実行時エラーで送信しますか?って出ちゃいます) また、これが出てしまった後どうすれば普通の結果が出せるようになるのでしょう??コンパイラの名前とか書いたほうがよろしいのでしょうか?何か不都合がありましたら補足させていただきます どうかよろしくお願いいたします。
- ベストアンサー
- C・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は 異なる挙動をする可能性はありますでしょうか。。 初歩的な質問で恐縮ですが、どうかご教授頂けると、幸いです。
- 締切済み
- C・C++・C#
- linuxからC言語のコンパイラー使えますか?
仕事でunixからC言語のコンパイラーをつかっています。 WindowsXPからC言語となるとすぐVISUALC++を想像してしまい 単純なunixでつかっているようなものが見当たりません。 linuxはつかったことないのですが、unixと似ているとききました。 unixと同じく標準でcコンパイラーは付属しているのでしょうか? ちなみにC言語を使いテキストファイルを編集(並び替えやあるワードの抜き出しやあるワードの置換)するプログラムを組み実行しています。
- ベストアンサー
- Linux系OS
- コンパイラについて
コンパイラについて プログラム初心者です。 マイクロ社のVisual C++2010Expressをインストールしたのですが、大変重いです。 父のPCなのであまり負担をかけたくないです。 言語はCを勉強中なのですが、取り合えずプログラムが書ける、軽いコンパイラってありますか? 調べてみたのですが、有料かフリーかよくわからなくて、なるべくフリーを探しています。 OSはXPです。見当違いのことを書いてるかもしれませんが、よろしくお願いしますm(__)m
- ベストアンサー
- その他(プログラミング・開発)
- GNUコンパイラとIntelコンパイラの違いについて
今回fortranとC言語で書かれたWindows用プログラムをLinux用に移植することになりました。GNUのコンパイラを使用し無事コンパイルできたので実行したのですが"Segmentation fault"となりうまく実行できませんでした。そこで試しにIntelのコンパイラを使用しコンパイルしてみたところGNUのときとは違い"Segmentation fault"とは出ず、プログラム内のエラーチェックに引っかかり止ってしまいました。同じソースコードにもかかわらず止まる箇所が異なります。 今まで考えたことがなかったのですがGNUとIntelのコンパイラの違いはなんなのでしょうか?また、この二つ以外にいいコンパイラはあるのでしょうか?
- ベストアンサー
- C・C++・C#
- C言語について
最近C言語でプログラミングを試みようとしてるのですが、コンパイルの時点でよく分かりません。 どのようなソフトでどのようにインストール・設定し、どのようにコンパイルするかなど、C言語でのプログラムのコンパイルから実行までを詳しく教えてください。
- ベストアンサー
- その他(ソフトウェア)
お礼
そうでしたか。 初心者なので、もしかしたらコンパイラが壊れてるの?? っておもっちゃったのです。 安心しました。 ありがとうございました。