- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語のポインタについての質問です。)
C言語のポインタについての質問です
このQ&Aのポイント
- C言語のポインタについての質問です。2つのプログラムを作り、片方で数値を入力し、もう片方でその数値を読み取りたいと思っています。
- 1つ目のプログラムでは、数値を入力し、そのアドレスを表示します。
- 2つ目のプログラムでは、入力したアドレスから数値を読み取ろうとしていますが、実行時に例外が発生してしまいます。何か解決策はありますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
32bit以降のWindowsではプロセス毎に別のアドレッシングが割り当てられますので、他のプロセスのアドレス値でそのメモリにアクセスすることはできません。(そもそも他のプロセスのメモリに直接アクセスすることは禁じられてます) プロセス間でメモリを共有する場合はWindowsのメモリマップドファイルの機能を使うことになりますが、それにはWindowsアプリのプログラミングの知識が必要です。
その他の回答 (3)
- neko1963
- ベストアンサー率49% (127/258)
回答No.4
メモリ上でデータを渡すのではなく、数値入力のプログラムでファイルにデータを書き込んで、読み取るプログラムでファイルから読み込むのが一番簡単だと思いますが、ファイルを使うのは何か支障があるんでしょうか?
質問者
お礼
そうですね! 回答ありがとうございました。
- anicicle
- ベストアンサー率36% (129/356)
回答No.3
補足程度に。 同じプログラムであっても、実行の度に同じアドレスに変数が確保されるとは限りません。 ましてや、別のプログラムであればなおさらです。 >何かよい方法やプログラムの問題などありましたら >教えて頂けませんか? 少なくとも、一度の実行でアドレスの表示とそのアドレスへの入力をこなす必要があります。
質問者
お礼
そうなんですか! 回答ありがとうございました。
- magicalpass
- ベストアンサー率58% (378/648)
回答No.2
#1です 補足ですが…… そもそも最初のプログラムがアドレスを出力した後で終了してる時点で、そのプロセスのメモリ等は解放されてしまっていますから、その後で起動したプロセスからそのメモリ上のデータにアクセスしようというのは無理があります。
お礼
回答ありがとうございます。 勉強になります!!