C言語のメモリ操作の危険性について
C言語を学習してみたかったが、ポインタの制御を間違えてPCをおじゃんにしてしまったという昔の話を聞いたことがあったので及び腰だった。 実際に容易にPCを壊してしまうことはあるのか、その場合どう気をつけるべきなのかを調べてみた。 Q,ポインタの誤操作はPCを破壊するのか? A, 最近のPCでは破壊には至らないらしい。 どういうことか 似たような質問がこのサイトにあり、その回答が納得の行くものだったので引用 リアルモードのOSであれば、OSとアプリケーションは同じメモリ空間で動作しますから、OSが壊れる場合があります。その際、一般にポートも保護されていませんから、最悪、C ...
C言語を学習してみたかったが、ポインタの制御を間違えてPCをおじゃんにしてしまったという昔の話を聞いたことがあったので及び腰だった。 実際に容易にPCを壊してしまうことはあるのか、その場合どう気をつけるべきなのかを調べてみた。
Q,ポインタの誤操作はPCを破壊するのか?
A, 最近のPCでは破壊には至らないらしい。
どういうことか
似たような質問がこのサイトにあり、その回答が納得の行くものだったので引用
リアルモードのOSであれば、OSとアプリケーションは同じメモリ空間で動作しますから、OSが壊れる場合があります。その際、一般にポートも保護されていませんから、最悪、CMOSなどのシステムパラメータを納めている部分が壊れてしまえば、OSどころか、コンピュータまで不調にしてしまうこともあり得ます。
リアルモードとはCPUの動作モードの一種で、メモリの実アドレスを指定することができ、アクセス保護をする機能がないモードのことで、現在のPCでは電源を入れた直後などでしか稼働しないモードのことらしい。 その反対にプロテクトモードがあり、こちらはアドレス保護機能があり、許可されたアドレス範囲外のメモリやI/Oにアクセスすると、中断してOSに通知する安全なモードで、現在のPCは基本的にこのモードで稼働しているようだ。
要はどういうことかというと、 昔はメモリの全ての番地に簡単にアクセスすることができ、運悪くOSなどのPCの処理を行う部分のメモリを弄るとPCが壊れてしまうという事があった。 しかし今では、弄ってはいけないメモリへのアクセスは中断され、通知が出る。 つまり意図的に行うのでない限りそう簡単にPCが壊れることはないとのこと
これで安心してC言語を学ぶことができる