No.3ベストアンサー
- 回答日時:
OSが限定されていないので
リアルモードのOSであれば、OSとアプリケーションは同じメモリ空間で動作しますから、OSが壊れる場合があります。その際、一般にポートも保護されていませんから、最悪、CMOSなどのシステムパラメータを納めている部分が壊れてしまえば、OSどころか、コンピュータまで不調にしてしまうこともあり得ます。SHARPのX68000には、フロッピードライブをロックして使用不能にしてしまうウィルスというのがありましたから、可能性が全く0ではない(というより、保護されない)と言えるでしょう。
また、各デバイスに登録されていても使えない命令と言うのもあり、通常はOSが保護していますが、偶然、コード領域を破壊してBIOSコールを書き込んでしまってOSを通さないようなコントロールシーケンスが発生した場合、ハードが壊れることはあります。今ではまず使いませんが、8インチフロッピーは5インチや3.5インチの2HDとは完全互換でなく、80トラックにシークを掛けると76トラックまでないため、壊れます。
最近のOSであれば、アプリケーションの実行空間はディスクリートしているので壊れることはないでしょうが、保護違反でブルーが出て再起動は開発中には結構あります。
MS-DOSの頃に、暴走して再起動したら、SYSTEM NOT FOUNDになってHDDごとお逝きになっていたことがありました。それ以来、開発中のプロジェクトのソースやライブラリはすべてサーバに置いて、実行モジュールだけローカルに置く習慣がつきました。
一番怖いのはHDDにアクセスしっぱなしになることで、その場合、結構な頻度でHDDが逝っちゃうことがあります。
No.2
- 回答日時:
>そもそもポインタやmallocのコードミスでOSが壊れてos再インストールなどに陥るものなのでしょうか?保護違反などが出てきてパソコン再起動なんかが起こるのでしょうか?
最近のOSでは絶対に壊れませんし、再起動(ブルースクリーン)することもないと思います。
Windowsの場合は、保護違反をした場合、確か9x系(95,Me,...)ではブルースクリーンになるぐらいで、OSは壊れないですし(私はXP時代の人間なので詳しく知らないので、間違ってるかも…)、NT系(2000,XP,...)は警告がでるだけですね。
>mallocのコードミス
mallocはあくまでもメモリを確保するだけの関数ですからOSを壊すとかそういうことは全く関係ないです。おそらく心配されているのはメモリ開放ミスによるメモリリークのことだと思いますが、サーバーのように常駐の場合、致命的になりかねませんが、普通のプログラムであれば、プログラム終了時にOSが勝手にメモリ開放処理をしてくれるので、問題ないです(常駐の場合は、プログラムを終了しないのでどんどんメモリが食われていく、というわけです)。
Linuxはどうかはちょっと分からないのですが、多分大丈夫だと思います。
いずれにせよOSが壊れることはないでしょう。
というわけで、安心してポインタの勉強をしてください。
No.1
- 回答日時:
> OSが壊れてos再インストールなどに陥るものなのでしょうか?
> 保護違反などが出てきてパソコン再起動なんかが起こるのでしょうか?
意図的にそういうプログラムを作る事は可能だと思いますが、
> そもそもポインタやmallocのコードミスで
が原因でどうこうってのは、Windowsのマインスイーパーの操作ミスでHDDをフォーマットしてしまわないか?とかくらいにあり得ない話で、杞憂かと。
…ファイルをまとめて高速に削除するソフトを作ってた、OSにより近い部分で動作するデバイスドライバなんかを作ってたとかなら、可能性はやや高いですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 ポインタ 配列 2 2022/06/02 17:29
- C言語・C++・C# C言語 配列とポインタについて 2 2022/06/02 11:53
- Windows 10 Apexを起動するとタスクマネージャーが閉じる現象について 1 2022/07/16 18:31
- その他(Microsoft Office) VBA メール送信済で実行されるはずが、実行されない時があります。 2 2023/02/02 14:05
- C言語・C++・C# 関数ポインタの高速化のメリット 7 2023/05/05 20:15
- C言語・C++・C# 双方向リスト 1 2023/06/28 04:16
- デスクトップパソコン 急にWin10が通常画面にならない 3 2023/08/08 07:36
- その他(ソフトウェア) ソフトが異常終了します 1 2022/08/28 01:41
- C言語・C++・C# C言語で構造体の参照渡しができません 2 2022/12/18 21:22
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、写真のプログラムをどう直せ 2 2022/07/09 21:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セグメントエラー
-
init関数の意味
-
Run-Time Check Failure #3とい...
-
アプリを32bitから64bit移行
-
DLL<->VB間での受け渡し(文字...
-
C言語のポインタに直接アドレス...
-
LPSTR型の初期化について
-
参照型で受け取った引数をポイ...
-
戻り値で構造体を返すことは可...
-
構造体とfscanf
-
fopne で失敗する原因
-
NASMかNASKの文法の本
-
関数ポインタの高速化のメリット
-
自作関数の引数
-
Cで作成したDLL関数をVBから呼...
-
popenした子プロセスのプロセス...
-
#define NULL ((void *)0) の弊害
-
C言語のプログラムをJavaに...
-
visual studioのエラーについて
-
x64プログラムでアドレスが32bi...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
セグメントエラー
-
C言語のポインタに直接アドレス...
-
init関数の意味
-
戻り値で構造体を返すことは可...
-
fopne で失敗する原因
-
C言語の関数と配列に関する質問
-
Run-Time Check Failure #3とい...
-
LPSTR型の初期化について
-
ExcelVBAでのkernel32(64bit)
-
main(int argc,char **argv[])...
-
アプリを32bitから64bit移行
-
ハンドルはポインタか
-
連結リスト 要素の入れ替え
-
C言語でのconstを返す関数
-
Cで作成したDLL関数をVBから呼...
-
NULLとブランクの違い
-
エラーの意味
-
ハンドル、アドレス、ポインタ...
-
DLL<->VB間での受け渡し(文字...
-
【C言語】戻り値が構造体の関数
おすすめ情報