- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:任意のアドレスの中身を参照したいのですが。。)
アドレスの中身を参照する方法
このQ&Aのポイント
- アドレスの中身を参照する方法について質問があります。
- 具体的には、C言語でのアドレスの中身の出力方法について知りたいです。
- scanfで入力された値をアドレスとして扱い、その中身を表示する方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
アドレスによってはアクセスバイオレーションかセグメンテーションフォルトを起こしてプログラムが死ぬことがありますが、それを覚悟の上なら unsigned char *ptr ; unsigned long add ; scanf("%lx", &add) ; ptr = (unsigned char *)add ; printf("%x", *ptr) ; 注意点 1.任意のアドレスを参照するなら1バイト単位にするべき 2.intとポインタ変数のサイズが同じでない場合があるので、ポインタに代入するならlong 動作環境によって違いますが、アドレスによってはアクセスしたらイキナリわけのわからない動作が怒る場合があるのでやらない方がいいんですけど…
お礼
なるほど、そういうことでしたか。 私の使う環境ではこれで動作しそうです。 的確なお答えありがとうございました。 大変助かりました。