回答編集履歴
3
修正
answer
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
コピー先である str が NULL だから。
|
2
2
|
|
3
3
|
```C++
|
4
|
-
#include <cstdio>
|
5
|
-
#include <
|
4
|
+
#include <iostream>
|
5
|
+
#include <algorithm>
|
6
6
|
#include <cstring>
|
7
7
|
|
8
8
|
char* str = nullptr;
|
@@ -10,10 +10,10 @@
|
|
10
10
|
int main() {
|
11
11
|
const char* str2 = "aaa";
|
12
12
|
|
13
|
-
str =
|
13
|
+
str = new char[std::strlen(str2)+1];
|
14
|
-
|
14
|
+
std::copy_n(str2, std::strlen(str2)+1, str);
|
15
|
-
|
15
|
+
std::cout << str;
|
16
16
|
|
17
|
-
|
17
|
+
delete[] str;
|
18
18
|
}
|
19
19
|
```
|
2
微修正
answer
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
#include <cstdlib>
|
6
6
|
#include <cstring>
|
7
7
|
|
8
|
-
char* str =
|
8
|
+
char* str = nullptr;
|
9
9
|
|
10
10
|
int main() {
|
11
11
|
const char* str2 = "aaa";
|
1
追記
answer
CHANGED
@@ -1,1 +1,19 @@
|
|
1
|
-
コピー先である str が NULL だから。
|
1
|
+
コピー先である str が NULL だから。
|
2
|
+
|
3
|
+
```C++
|
4
|
+
#include <cstdio>
|
5
|
+
#include <cstdlib>
|
6
|
+
#include <cstring>
|
7
|
+
|
8
|
+
char* str = NULL;
|
9
|
+
|
10
|
+
int main() {
|
11
|
+
const char* str2 = "aaa";
|
12
|
+
|
13
|
+
str = (char*)malloc(strlen(str2)+1);
|
14
|
+
memcpy(str, str2, strlen(str2)+1);
|
15
|
+
printf("%s",str);
|
16
|
+
|
17
|
+
free(str);
|
18
|
+
}
|
19
|
+
```
|