回答編集履歴
4
見やすくなるよう修正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
>どうにかしてスマートポインタ間で値をコピーする方法がないかお聞きしたいです。
|
1
|
+
> どうにかしてスマートポインタ間で値をコピーする方法がないかお聞きしたいです。
|
2
2
|
|
3
3
|
std::unique_ptrを使うのではなく
|
4
4
|
std::shared_ptrを使えばコピーできます。
|
3
コードのコメント追加と修正
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[
|
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
コード修正
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[]>
|
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文の書き忘れ
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
|
```
|