回答編集履歴

1

誤記、表現修正

2019/01/17 15:51

投稿

toki_td
toki_td

スコア2850

test CHANGED
@@ -1,9 +1,9 @@
1
- delete hoge[i]は配列のi番目にあるポインタの先の領域の削除で、delete[] hogeは配列そのものの削除なので用途が違います。
1
+ delete hoge[i]は配列のi番目にあるポインタが示す領域の削除で、delete[] hogeは配列そのものの削除なので用途が違います。
2
2
 
3
3
 
4
4
 
5
- Playerクラスでは bullet は Bullet* 型の BULLET_MAX個から成る固定長の配列ですから、配列そのものはPlayerのインスタンス(つまりthis)のメモリ領域中にあるので、Player(this)が破棄されれば同時に破棄されるため delete[] hogeは必要ありません。
5
+ Playerクラスでは bullet は Bullet* 型の BULLET_MAX個から成る固定長の配列ですから、配列そのものはPlayerのインスタンス(つまりthis)のメモリ領域中にあるので、Player(this)が削除されれば同時に削除されるため delete[] hogeは必要ありません。
6
6
 
7
7
 
8
8
 
9
- 対して、コンストラクタでbullet[i]それぞれに new Bullet でメモリを割り当てているので、開放する際もそれぞれを廃棄する必要があるため、デストラクタで delete bullet[i] とします。
9
+ 対して、各要素についてはコンストラクタでbullet[i]に new Bullet でメモリを割り当てているので、開放する際も個々に削除する必要があるため、デストラクタで delete bullet[i] とします。