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

回答編集履歴

3

文言修正

2020/11/24 17:25

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -16,5 +16,5 @@
16
16
 
17
17
  ---
18
18
 
19
- yumetodoさんもコメントされていますが、生のポインタは放漏れや2重解放の原因となりますので
19
+ yumetodoさんもコメントされていますが、生のポインタは放漏れや2重解放の原因となりますので
20
20
  C++のコードではスマートポインタ([unique_ptr](https://ja.cppreference.com/w/cpp/memory/unique_ptr)/[shared_ptr](https://ja.cppreference.com/w/cpp/memory/shared_ptr)/[weak_ptr](https://ja.cppreference.com/w/cpp/memory/weak_ptr))の使用を検討してください。

2

リンク追加

2020/11/24 17:25

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -12,4 +12,9 @@
12
12
  > ポインタのクラスをdeleteできなくて困っています。
13
13
 
14
14
  `straightine`と`straightine2`の値を変更しているためです。
15
- 別の変数に退避しておくなどして、`delete`には`new`が返したアドレスを渡してください。
15
+ 別の変数に退避しておくなどして、`delete`には`new`が返したアドレスを渡してください。
16
+
17
+ ---
18
+
19
+ yumetodoさんもコメントされていますが、生のポインタは開放漏れや2重解放の原因となりますので
20
+ C++のコードではスマートポインタ([unique_ptr](https://ja.cppreference.com/w/cpp/memory/unique_ptr)/[shared_ptr](https://ja.cppreference.com/w/cpp/memory/shared_ptr)/[weak_ptr](https://ja.cppreference.com/w/cpp/memory/weak_ptr))の使用を検討してください。

1

文言修正

2020/11/24 10:47

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -3,9 +3,9 @@
3
3
  (略)
4
4
  straightine = new StraightLine[1];
5
5
  (略)
6
- *straightine++; // ポインタを変更している
6
+ *straightine++; // を変更している
7
7
  (略)
8
- straightine2 = dynamic_cast<StraightLine*>(*it); // ポインタを変更している
8
+ straightine2 = dynamic_cast<StraightLine*>(*it); // を変更している
9
9
  (略)
10
10
  //ここでstraightineとstraightine2をdeleteしたい
11
11
  ```