こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

アドレスをintに代入する方法

適当なアドレスをprintfで表示し、その値をintに代入するのが目的です。
#include <iostream>
using namespace std;
main(){
char buf[20];
char **pp;
char *p = "\0";
int i;
pp = &p;
printf("%lu\n", pp);
sprintf(buf, "%lu\n", pp);
i = atoi(buf);
printf("%lu\n", i);
}
とりあえずできていますが、
pp = &p;以降の処理で、bufを使ったり非推奨?のatoi()を使っています。
pp = &p;以降の処理でもっとよい方法はないでしょうか?

投稿日時 - 2006-03-23 11:55:29

QNo.2046456

暇なときに回答ください

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

普通に i = (int)p; じゃなにかまずいんですか?
上の例だと"\0"のアドレスじゃなくて、pのアドレスを表示しているように見えますが。pのアドレスを見たいんなら、普通は i = (int)(&p); ですけど。

投稿日時 - 2006-03-23 12:04:27