![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
読み込み中にアクセス違反が発生しました、と出ます。これを回避することはできますか?
C++でプログラミングをしています。
現在、ポインタ(p)に入れたアドレスをずらしていって、メモリの任意の位置の値を表示する、というプログラムを制作しています。
具体的に言うと、上記のプログラムではない別のプログラムを実行し、そのプログラムで宣言した変数のアドレスを表示させます。そしてそのプログラムが動いている最中に、上記のプログラムを起動させ、ポインタpにその変数のアドレスを代入して、表示させようとしました。
しかし、止まってしまいます。デバッグしてみると、「test.exe の 0x00024ad5 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x0014fde8 を読み込み中にアクセス違反が発生しました」と出ます。
なんとかこれを回避して、ポインタに代入したアドレスを表示さすことはできませんか?
宜しくお願いします。
ちなみに、自分がかなり妙なことをしているのは自覚しているつもりです。
No.3ベストアンサー
- 回答日時:
#2です。
もう少し突っ込んで話をすると、今のOSはたいてい仮想アドレス方式で各プロセスのアドレス空間はそのプロセス内でのみ有効なものです。
つまり、プロセスAの0番地とプロセスBの0番地は値は同じでも全く別の箇所を指しているということです。
ですが、プログラムの中には複数プロセスで協調動作させる等の理由により質問のような他プロセスが扱うメモリの中身を参照・変更したい場合があります。
それを実現するのが共有メモリ等の機構である訳です。
No.1
- 回答日時:
> 具体的に言うと、上記のプログラムではない別のプログラムを実行し、そのプログラムで宣言した変数のアドレスを表示させます。
そしてそのプログラムが動いている最中に、上記のプログラムを起動させ、ポインタpにその変数のアドレスを代入して、表示させようとしました。一般的にそういうアクセスはOSが禁じているので出来ません。OSがエラーを出しているのでC/C++のプログラミングの問題ではありません。
自作OSとかでそういう保護機能がない場合は可能でしょうけど。欲しければ自分で作ってください。
共有メモリ等の機能を使えば、その範囲でなら可能となりますが、OSの記載が無いのでそれ以上はなんとも言えません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
- HTML・CSS ホームページにブログ記事をサムネイル付きで掲載する方法 2 2022/11/25 14:55
- システム CPUの問題について 2 2022/07/09 12:04
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
- Visual Basic(VBA) VBA リボンののリカバリーでオーバーフローエラーになります 2 2023/07/04 19:07
- その他(プログラミング・Web制作) プログラムが書けません。 6 2023/01/22 22:58
- CAD・DTP Autocad Scriptファイルからの入力とコマンドラインからの入力が違う 1 2023/08/01 09:13
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
「読み込み違反」が起きたときのデバッグ方法
C言語・C++・C#
-
構文エラー;"が型の前にありませんとは、どうしたら解決できるのですか。"
C言語・C++・C#
-
適切な変換関数が存在しない???
C言語・C++・C#
-
-
4
Debug Assertion Failed?
C言語・C++・C#
-
5
アプリケーション終了時例外エラー(アクセス違反)の調査方法について
C言語・C++・C#
-
6
deleteで開放するとエラーになる原因がわからない
C言語・C++・C#
-
7
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
8
ボタンの表示の色、フォントを変更したい
C言語・C++・C#
-
9
エラーの原因は?「この関数の定義が見つかりません」
C言語・C++・C#
-
10
charからLPTSTRへの変換方法
C言語・C++・C#
-
11
DLL<->VB間での受け渡し(文字列・ポインタ)
Visual Basic(VBA)
-
12
LPSTR型の初期化について
C言語・C++・C#
-
13
Run-Time Check Failure #3というエラーが出ます。
C言語・C++・C#
-
14
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
15
【MFC】Version情報の取得
C言語・C++・C#
-
16
char* を渡したとき、不適切なPtrが出る問題
C言語・C++・C#
-
17
画面を強制的に再描画させる方法
C言語・C++・C#
-
18
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
19
C言語で、メモリを解放しないで終わるプログラム
C言語・C++・C#
-
20
スレッドの終了はどうやるんですか?
C言語・C++・C#
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで4096点以上のFFTの方法
-
VBAにてメール作成した際、一部...
-
あるプログラムのコマンドライ...
-
Excelに埋め込んだVBAのプログ...
-
ドロップダウンリストの文字を...
-
モジュール、アプリケーション...
-
Vba 実数および実数タイプの変...
-
COBOLでBLOCK CONTAINS句につい...
-
C言語でのaccess violationに...
-
読み込み中にアクセス違反が発...
-
仮想ベクタテーブルについて
-
ニュートン法で解が収束しない
-
XnViewにwebpを「いつも開く」...
-
エクセルとワードをデスクトッ...
-
AutoCADを用いて板金展開図を自...
-
VBAでユーザーフォームが自動的...
-
VC++コンソールアプリでウイン...
-
テキストファイルを間違えて保...
-
自動クエリとはどういうもので...
-
FORTRANの絶対値についてです。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あるプログラムのコマンドライ...
-
Excelで4096点以上のFFTの方法
-
Vba 実数および実数タイプの変...
-
インクリメント演算子のみを用...
-
スポーツ施設での出来事で心配...
-
VBAにてメール作成した際、一部...
-
VBAでユーザーフォームが自動的...
-
Excelに埋め込んだVBAのプログ...
-
Notepad++の関数リスト表示でC...
-
PICマイコンのコピー(クローン...
-
「Outlookが他のプログラムによ...
-
読み込み中にアクセス違反が発...
-
未使用の変数を一括検索する方法
-
自動クエリとはどういうもので...
-
エクセルとワードをデスクトッ...
-
binファイルってiphone専用です...
-
ドロップダウンリストの文字を...
-
UWSCで指定のフォルダを開きたい。
-
モジュール、アプリケーション...
-
パックマンプログラム
おすすめ情報