アプリ版:「スタンプのみでお礼する」機能のリリースについて

C++でメモリの絶対番地を指定する方法はありますか。
あるプログラムでメモリの指定した番地にデータを書き込み、別のプログラムで同じ番地のデータを読み込めるようにしたいと思ってます。プログラムは作ったのですが、絶対番地を指定していないようで、別のプログラム側で同じ番地を指定しても同じデータが読み込めません。

A 回答 (3件)

仮想記憶が働いてるマルチプロセスOS(WindowsやLinux)は、メモリ空間が完全に独立していますのでプログラム(プロセス)間でメモリ内容を相互参照するには特別な仕組みが必要です。

メモリを共有する場合は、同期処理も合わせて必要ですので注意してください。

WindowsAPIの場合のサンプル
http://nienie.com/~masapico/api_CreateFileMappin …
    • good
    • 0
この回答へのお礼

番地を指定してデータの取得が出来ました。ありがとうございます。

お礼日時:2010/05/03 17:02

一般的な方法はありません。


ただし、よく使われる方法としては次の二種類です。

1. アドレスをポインタ型にキャストする。
2. asm宣言を使う。

ところで、メモリの絶対番地とCPUの絶対番地はふつう異なります。
メモリの絶対番地を指定するためには、CPUのメモリマップとメモリデバイスの構成を正確に理解しなければなりません。
MMUを使っている環境であれば、仮想アドレスではなく物理アドレスを元にメモリの絶対番地を割り出す必要があります。
これらを踏まえると、環境によっては上記の二種類の方法だけでは済まないことがわかるかと思います。
    • good
    • 0
この回答へのお礼

参考になりました。ありがとうございます。
APIを利用してデータを取得しました。

お礼日時:2010/05/03 17:10

方法はOS依存です。



Windowsなら
Win32APIでCreateFileMapping
使うとか。
    • good
    • 0
この回答へのお礼

APIを使用しデータ取得できました。ありがとうございます。

お礼日時:2010/05/03 17:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!