回答編集履歴

4

回答を修正

2018/09/13 04:00

投稿

y_waiwai
y_waiwai

スコア87774

test CHANGED
@@ -1,12 +1,16 @@
1
- 回答じゃないですが、まずいところを。
1
+ ~~回答じゃないですが、まずいところを。
2
+
3
+ ~~
4
+
5
+ ~~> if((temp = (char *)calloc(s, sizeof(char))) == NULL){
6
+
7
+ ~~
8
+
9
+ ~~これでは、tempには1文字分しか領域は確保されません~~
2
10
 
3
11
 
4
12
 
5
- > if((temp = (char *)calloc(s, sizeof(char))) == NULL){
6
-
7
-
8
-
9
- これでは、tempには1文字分か領域は確保されせん
13
+ callocではこれでいいんですね。失礼しました
10
14
 
11
15
 
12
16
 
@@ -27,3 +31,9 @@
27
31
 
28
32
 
29
33
  これだけで済みますぜ
34
+
35
+
36
+
37
+ んでもひとつ、
38
+
39
+ データを削除する、んじゃなくて、もひとつバッファを用意しといて、該当データを抜いてコピーする、という考え方で行くほうがいいかと。

3

回答に追記

2018/09/13 04:00

投稿

y_waiwai
y_waiwai

スコア87774

test CHANGED
@@ -11,3 +11,19 @@
11
11
 
12
12
 
13
13
  #ってか、エンディアン変換だけならこんなことしなくても。
14
+
15
+
16
+
17
+ ---
18
+
19
+ 入れ替える、んじゃなくて、BigEndian対応の読み出しルーチンにすれば。
20
+
21
+
22
+
23
+ unsigned char* s = input;
24
+
25
+ return (unsigned int)s[0]<<24 | s[1]<<16 | s[2]<<8 | s[3];
26
+
27
+
28
+
29
+ これだけで済みますぜ

2

修正

2018/09/13 03:50

投稿

y_waiwai
y_waiwai

スコア87774

test CHANGED
@@ -11,25 +11,3 @@
11
11
 
12
12
 
13
13
  #ってか、エンディアン変換だけならこんなことしなくても。
14
-
15
-
16
-
17
- ---
18
-
19
- んで、
20
-
21
- ```C
22
-
23
- printf("# Header ========================\n");
24
-
25
- printf("header_chunk_type : %c%c%c%c\n", header_chunk_type[0],
26
-
27
- header_chunk_type[1], header_chunk_type[2], header_chunk_type[3]);
28
-
29
- ```
30
-
31
- データはバイナリデータです
32
-
33
- %c では文字の表示になります
34
-
35
- バイナリデータの表示するなら %02X とかにしましょう

1

回答に追記

2018/09/13 03:41

投稿

y_waiwai
y_waiwai

スコア87774

test CHANGED
@@ -11,3 +11,25 @@
11
11
 
12
12
 
13
13
  #ってか、エンディアン変換だけならこんなことしなくても。
14
+
15
+
16
+
17
+ ---
18
+
19
+ んで、
20
+
21
+ ```C
22
+
23
+ printf("# Header ========================\n");
24
+
25
+ printf("header_chunk_type : %c%c%c%c\n", header_chunk_type[0],
26
+
27
+ header_chunk_type[1], header_chunk_type[2], header_chunk_type[3]);
28
+
29
+ ```
30
+
31
+ データはバイナリデータです
32
+
33
+ %c では文字の表示になります
34
+
35
+ バイナリデータの表示するなら %02X とかにしましょう