• 締切済み

アドレスを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;以降の処理でもっとよい方法はないでしょうか?

みんなの回答

  • moritan2
  • ベストアンサー率25% (168/670)
回答No.1

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