• 締切済み

C言語の勉強中です

jjk65536の回答

  • jjk65536
  • ベストアンサー率59% (66/111)
回答No.7

Linuxでは0番地からの最初の1ページはR/Wの禁止フラグが立っていることが保証されているため、 読み書きしようとすると、Kernelが不正アクセスを捕捉します。 NULLは(void*)0ですから、誤ってアクセスがあった場合に確実に検出できるようになっているのです。 Kernelが不正アクセスを捕捉すると何がおきるのか 1. 標準エラー出力に「Segmentation fault」と表示する 2. SIGSEGVシグナルを発行し、プログラムに不正アクセスがあったことを通知 このように、NULLが0番地であると都合がいいので一般的には0番地を指すようになっています。 また、メモリに関するマジックナンバーでは、以下の記事なんかも面白いですよ。 Wikipedia Hexspeak http://ja.wikipedia.org/wiki/Hexspeak

関連するQ&A

  • 入門より少し進んだC言語の勉強方法

    初めまして。 現在、C言語の勉強をしています。 C言語入門用の本を2~3冊読み、実際に自分で書いてみて関数やポインタ、構造体などの初歩的な事は理解しました。 また、基本情報技術者試験をC言語で受験し、合格する事が出来ました。 しかし、基本情報技術者試験に出てくるプログラミングの問題を読み、どのような動作をするのか追いかける事は出来ますが、似たようなレベルのプログラムを「自分で1から書けるか」と言われたら難しいと思います。 入門用の本を卒業し、次のステップに進みたいと思うのですが、どのように勉強すればいいのかよく分からず、止まってしまっている状態です。 ぜひ、今後におけるおすすめの勉強方法がありましたら教えてください。 宜しくお願いします。

  • C++の勉強を始めたいと思っています。

    C++の勉強を始めたいと思っています。 C言語の経験はあるので、そのあたりから始められるとっつきやすい参考書でお勧めはないでしょうか。 この本の途中からがいいよというのでもかまいません。

  • C言語の勉強方法

    こんにちは。 今C言語の勉強方法で悩んでいます。 私のC言語暦は、大学の授業の時に、文法一通りを覚えました。(当時はオセロゲームの次の一手を考えるようなアプリを作りました。) ポインタに関しては、柴田望洋さんの「C言語ポインタの極意」という本を少し読みました。ぼんやりと理解しているような状態です。K&Rの本は概ね理解できます。(演習問題はやっていません。) 仕事としてしているわけではなく、本はいろいろ読んでいるのですが、あまり自分でサンプルコードを打ってみたりはしていません。演習問題も解いていません。 APIに関する知識は乏しいです。アルゴリズムとデータ構造は、ヒントがないと、自力では書く自信がありません。基本情報処理技術者の資格も持っていません。 こういったレベルですが、これからどういった勉強をすればいいでしょうか?アドバイスを頂けるとありがたいです。

  • C言語を勉強したいです。

    こんばんは。 いきなりですが、C言語を勉強したいと思っています。 今回初めて言語を勉強するので、本を見ながら勉強したいと思っているのですが、C言語に関する本が多すぎてよく解りません。 「0からの初心者にはこの本解りやすいよ!」、「この本なら解らないときに○○の掲示板で情報交換できたりするよ!」なんて情報がありましたら、是非教えていただけないでしょうか? よろしくお願いします。

  • C言語 よく使うのは?

    C言語の参考書で、例えば1章~8章まであるとすると、 1章~前半くらいは、printfや変数や、演算など出てきると思うんですが、後半にかけて、配列やポインタや関数など出てくると思います。 実際に仕事で、よく使うのを挙げるとどんなのですか?(例えば、ポインタはよく使うや配列もよく使うや) もちろん、変数や演算などが出来ないと条件分岐や配列もポインタも何も出来ないと思うんですが、 上手く言えないんですが、for文はよく使うから、ちゃんと理解していないとダメとか、仕事ではポインタがしょっちゅう使うとか、ありますか? 本屋さんで見ると、ポインタ専用の本や、関数専用の本があるので、よく使うのかなと思いました。 それか、難しく理解が難しいから、より詳しく書かれているんでしょうか? 上手く説明が出来ていないですが、よろしくお願いします。

  • C言語の勉強にあたって

    今からC言語を勉強していく人から質問されたのですが、勉強にあたって、Cのアプリケーション(コンパイラ等)なしに実際のプログラムの動きを勉強する方法はないでしょうか? これでは漠然とした書き方ですが、例えば、インターネットのHP上でプログラミング→コンパイル→実行をシミュレーションできるようなHPはないでしょうか? こういうHPがあると、とりあえずインターネット環境とC言語の参考書があれば簡単に勉強できると思うんです。 そのようなHP、ありましたら教えてください。 何ヶ所かあるようでしたら、使い方が難しくない(初心者向け)ところが良いです。 よろしくお願いします。

  • c言語

    ポインタではない型名 変数名=(void *) 0; 上記コードですべての処理系で、変数の中身がすべてビット0であるということはc言語規格で保証されていないという認識は正しいですか?

  • C言語の勉強法

    C言語の勉強をしたい、そう決意をしましたが、勉強方法がイマイチ分かりません。勉強方法を教えてください。 例えば、このサイトや本を参考にして勉強するとか、どの関数から勉強すればいいとか。 よろしくお願いします。

  • C言語の参考書を探しています。

    ご回答のほうよろしくお願いします。 早速ですが、私は只今、職業訓練校にてC言語を習っています。 しかし、色々と勉強しているうちに何個か分からなくなることがありまして、それについて詳しく書いてある本かHPが欲しいなと思いまして、質問させて頂きました。 それで内容ですが、 ・標準関数について使い方と内容を詳しく記載してある本が欲しいのです。 HPやペルプを使っても私にはちょっと分かり難いのでその部分を重点的に記載しているとありがたいです。 ・またC言語の関数の作り方、ポインタの使い方も詳しく書いてある本も欲しいです。 ・それとこれは別で、再度初歩的な部分の勉強したいと思いますので、初心者の参考書も欲しいと思っています。 と色々と要望が多いですが、よろしくお願いします。 ちなみに全部に言えることですが私はMicrosoft Visual C++ 6.0を使っているのでそれに精通した本でお願いします。

  • C言語を勉強中で・・・・

    現在C言語を参考書を読みながら勉強しています。 ですが参考書を読むだけではいまいち理解が出来ないので実際にパソコン上でプログラムを実行してみたいと思いました。 そこで初心者でも扱いやすい無料のコンパイラを探しています。 出来ればダウンロードやインストール等も簡単でわかりやすいととても助かるのですが何方かご存知の方はいませんか? よろしくお願いします。