回答編集履歴

5

誤記修正

2019/12/07 02:43

投稿

cateye
cateye

スコア6851

test CHANGED
@@ -56,8 +56,6 @@
56
56
 
57
57
  }
58
58
 
59
- *cp = '\0';
60
-
61
59
  }
62
60
 
63
61
 

4

ソース修正

2019/12/07 02:43

投稿

cateye
cateye

スコア6851

test CHANGED
@@ -44,23 +44,27 @@
44
44
 
45
45
 
46
46
 
47
- static void mem_set(unsigned char * p, size_t n, unsigned char v){
47
+ static void mem_set(unsigned char *p, size_t n, unsigned char v)
48
+
49
+ {
48
50
 
49
51
  unsigned char *cp = p;
50
52
 
51
- while (n--){
53
+ while (n--) {
52
54
 
53
55
  *cp++ = v;
54
56
 
55
- }
57
+ }
56
58
 
57
- *cp = '\0';
59
+ *cp = '\0';
58
60
 
59
61
  }
60
62
 
61
63
 
62
64
 
63
- int main(){
65
+ int main(void)
66
+
67
+ {
64
68
 
65
69
  size_t n;
66
70
 
@@ -78,6 +82,12 @@
78
82
 
79
83
  }
80
84
 
85
+ delete[] xp;
86
+
87
+ //
88
+
89
+ return 0;
90
+
81
91
  }
82
92
 
83
93
  usr ~/Project/test %

3

ソース追記

2019/12/07 02:42

投稿

cateye
cateye

スコア6851

test CHANGED
@@ -3,3 +3,83 @@
3
3
 
4
4
 
5
5
  void*には対象のサイズがありません、必要なタイプ(e.g. unsigned char*)にキャストして使いましょう。
6
+
7
+
8
+
9
+ [追記]・・・意図した結果かどうか?
10
+
11
+ ```text
12
+
13
+ usr ~/Project/test % ./a.out
14
+
15
+ total index: 10
16
+
17
+ xp[0] = AAAAAAAAAA, A
18
+
19
+ xp[1] = AAAAAAAAA, A
20
+
21
+ xp[2] = AAAAAAAA, A
22
+
23
+ xp[3] = AAAAAAA, A
24
+
25
+ xp[4] = AAAAAA, A
26
+
27
+ xp[5] = AAAAA, A
28
+
29
+ xp[6] = AAAA, A
30
+
31
+ xp[7] = AAA, A
32
+
33
+ xp[8] = AA, A
34
+
35
+ xp[9] = A, A
36
+
37
+ usr ~/Project/test % cat t1.cpp
38
+
39
+ #include <iostream>
40
+
41
+ #include <cstdlib>
42
+
43
+ using namespace std;
44
+
45
+
46
+
47
+ static void mem_set(unsigned char * p, size_t n, unsigned char v){
48
+
49
+ unsigned char *cp = p;
50
+
51
+ while (n--){
52
+
53
+ *cp++ = v;
54
+
55
+ }
56
+
57
+ *cp = '\0';
58
+
59
+ }
60
+
61
+
62
+
63
+ int main(){
64
+
65
+ size_t n;
66
+
67
+ cout << "total index: ";
68
+
69
+ cin >> n;
70
+
71
+ unsigned char *xp = new unsigned char[n];
72
+
73
+ mem_set(xp, n, 'A');
74
+
75
+ for (size_t i = 0; i < n; i++) {
76
+
77
+ cout << "xp[" << i << "] = " << xp + i << ", " << *(xp + i) << endl;
78
+
79
+ }
80
+
81
+ }
82
+
83
+ usr ~/Project/test %
84
+
85
+ ```

2

誤記修正

2019/12/07 02:27

投稿

cateye
cateye

スコア6851

test CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
 
4
4
 
5
- void*には対象のサイズがありません、必要なタイプ(e.g.int*)にキャストして使いましょう。
5
+ void*には対象のサイズがありません、必要なタイプ(e.g. unsigned char*)にキャストして使いましょう。

1

誤記修正

2019/12/07 02:04

投稿

cateye
cateye

スコア6851

test CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
 
4
4
 
5
- void*には対象のサイズがありません、必要なタイプ(e.d.int*)にキャストして使いましょう。
5
+ void*には対象のサイズがありません、必要なタイプ(e.g.int*)にキャストして使いましょう。