回答編集履歴
2
修正
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
```
|
8
8
|
|
9
|
-
ポインターと
|
9
|
+
ポインターとintがいつも同じ大きさとは保障されないので、%pのかわりに%dや%xを使う事は良くないです。
|
10
10
|
|
11
11
|
私もOSXのため以下を試した結果
|
12
12
|
|
@@ -32,13 +32,11 @@
|
|
32
32
|
|
33
33
|
データ:25 , アドレス:0x7fff5700faec
|
34
34
|
|
35
|
-
|
36
|
-
|
37
35
|
```
|
38
36
|
|
39
37
|
となりアドレスの半分しか表示できませんね。。。。
|
40
38
|
|
41
|
-
|
39
|
+
(ポインターとシステムのintなどのサイズが異なるとアドレスの半分しか表示されない)
|
42
40
|
|
43
41
|
といういう事[らしい](http://stackoverflow.com/questions/2369541/where-is-p-useful-with-printf)です
|
44
42
|
|
1
追記
test
CHANGED
@@ -41,3 +41,17 @@
|
|
41
41
|
|
42
42
|
|
43
43
|
といういう事[らしい](http://stackoverflow.com/questions/2369541/where-is-p-useful-with-printf)です
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
###追記
|
48
|
+
|
49
|
+
64bitでのアドレス空間のユーザー空間は
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
[0x0000000000000000~0x00007fffffffffff](http://wiki.bit-hive.com/linuxkernelmemo/pg/64bit%A4%C7%A4%CE%A5%A2%A5%C9%A5%EC%A5%B9%B6%F5%B4%D6)
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
という事で%pの出力はその範囲を正しく表せますが%x(%d)は表せてないですね。。。
|