teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

誤字修正

2021/10/18 00:16

投稿

amiya
amiya

スコア1218

answer CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
  `p = new ~;` というのもそれと同じです。
44
44
 
45
- **「確保したpいうアドレス置き場」**に**「newで確保した別のメモリのエリアの先頭アドレス」**を書き込む。
45
+ **「確保したpいうアドレス置き場」**に**「newで確保した別のメモリのエリアの先頭アドレス」**を書き込む。
46
46
 
47
47
  という動作になります。
48
48
  `p`も`new`で確保したエリアも、両方メモリ上に確保されているのです。

1

追加

2021/10/18 00:16

投稿

amiya
amiya

スコア1218

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
+ (今回は直後で使っているのでほんとに意味はないですが、たぶん念のためでしょう)