• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語のポインタについての質問です。)

C言語のポインタについての質問です

このQ&Aのポイント
  • C言語のポインタについての質問です。2つのプログラムを作り、片方で数値を入力し、もう片方でその数値を読み取りたいと思っています。
  • 1つ目のプログラムでは、数値を入力し、そのアドレスを表示します。
  • 2つ目のプログラムでは、入力したアドレスから数値を読み取ろうとしていますが、実行時に例外が発生してしまいます。何か解決策はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

 32bit以降のWindowsではプロセス毎に別のアドレッシングが割り当てられますので、他のプロセスのアドレス値でそのメモリにアクセスすることはできません。(そもそも他のプロセスのメモリに直接アクセスすることは禁じられてます)  プロセス間でメモリを共有する場合はWindowsのメモリマップドファイルの機能を使うことになりますが、それにはWindowsアプリのプログラミングの知識が必要です。

kennkyuushitsu
質問者

お礼

回答ありがとうございます。 勉強になります!!

その他の回答 (3)

  • neko1963
  • ベストアンサー率49% (127/258)
回答No.4

メモリ上でデータを渡すのではなく、数値入力のプログラムでファイルにデータを書き込んで、読み取るプログラムでファイルから読み込むのが一番簡単だと思いますが、ファイルを使うのは何か支障があるんでしょうか?

kennkyuushitsu
質問者

お礼

そうですね! 回答ありがとうございました。

  • anicicle
  • ベストアンサー率36% (129/356)
回答No.3

補足程度に。 同じプログラムであっても、実行の度に同じアドレスに変数が確保されるとは限りません。 ましてや、別のプログラムであればなおさらです。 >何かよい方法やプログラムの問題などありましたら >教えて頂けませんか? 少なくとも、一度の実行でアドレスの表示とそのアドレスへの入力をこなす必要があります。

kennkyuushitsu
質問者

お礼

そうなんですか! 回答ありがとうございました。

回答No.2

#1です 補足ですが……  そもそも最初のプログラムがアドレスを出力した後で終了してる時点で、そのプロセスのメモリ等は解放されてしまっていますから、その後で起動したプロセスからそのメモリ上のデータにアクセスしようというのは無理があります。

関連するQ&A