回答編集履歴
2
誤字修正
answer
CHANGED
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
`p = new ~;` というのもそれと同じです。
|
44
44
|
|
45
|
-
**「確保したp
|
45
|
+
**「確保したpというアドレス置き場」**に**「newで確保した別のメモリのエリアの先頭アドレス」**を書き込む。
|
46
46
|
|
47
47
|
という動作になります。
|
48
48
|
`p`も`new`で確保したエリアも、両方メモリ上に確保されているのです。
|
1
追加
answer
CHANGED
@@ -45,4 +45,13 @@
|
|
45
45
|
**「確保したpをいうアドレス置き場」**に**「newで確保した別のメモリのエリアの先頭アドレス」**を書き込む。
|
46
46
|
|
47
47
|
という動作になります。
|
48
|
-
`p`も`new`で確保したエリアも、両方メモリ上に確保されているのです。
|
48
|
+
`p`も`new`で確保したエリアも、両方メモリ上に確保されているのです。
|
49
|
+
|
50
|
+
|
51
|
+
ちなみに、
|
52
|
+
> int *p = 0とは何をやっているのでしょうか?
|
53
|
+
|
54
|
+
これ自体にはあまり意味はありません。C言語やC++では変数の初期値は不定なので、明示的に0=NULLでクリアしているだけかと思います。
|
55
|
+
変な値が入っていると、それが何か意味のあるアドレスなのかな?と勘違いする可能性もありますので。
|
56
|
+
NULLを入れておけば、確実に空なんだなと分かります。
|
57
|
+
(今回は直後で使っているのでほんとに意味はないですが、たぶん念のためでしょう)
|