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

回答編集履歴

4

見やすくなるよう修正

2020/07/19 09:33

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,4 @@
1
- >どうにかしてスマートポインタ間で値をコピーする方法がないかお聞きしたいです。
1
+ > どうにかしてスマートポインタ間で値をコピーする方法がないかお聞きしたいです。
2
2
 
3
3
  std::unique_ptrを使うのではなく
4
4
  std::shared_ptrを使えばコピーできます。

3

コードのコメント追加と修正

2020/07/19 09:33

投稿

退会済みユーザー
answer CHANGED
@@ -7,9 +7,9 @@
7
7
  #include <memory>
8
8
 
9
9
  int main(){
10
- constexpr unsigned int size = 5;
10
+ constexpr unsigned int size = 5;//要素数
11
11
 
12
- auto mem1 = std::shared_ptr<int[]>(new int[5]);
12
+ auto mem1 = std::shared_ptr<int[]>(new int[size]);
13
13
  auto mem2 = std::shared_ptr<int[]>();
14
14
 
15
15
  for(int i=0;i<size;i++)mem1[i] = i;//mem1へ数値代入

2

コード修正

2020/07/19 09:28

投稿

退会済みユーザー
answer CHANGED
@@ -10,7 +10,7 @@
10
10
  constexpr unsigned int size = 5;
11
11
 
12
12
  auto mem1 = std::shared_ptr<int[]>(new int[5]);
13
- std::shared_ptr<int[]> mem2;
13
+ auto mem2 = std::shared_ptr<int[]>();
14
14
 
15
15
  for(int i=0;i<size;i++)mem1[i] = i;//mem1へ数値代入
16
16
 
@@ -21,4 +21,5 @@
21
21
  return 0;
22
22
  }
23
23
 
24
+
24
25
  ```

1

return文の書き忘れ

2020/07/19 09:19

投稿

退会済みユーザー
answer CHANGED
@@ -18,6 +18,7 @@
18
18
 
19
19
  for(int i=0;i<size;i++)std::cout << mem2[i] << std::endl;//mem2の内容表示
20
20
 
21
+ return 0;
21
22
  }
22
23
 
23
24
  ```