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

回答編集履歴

1

文言

2021/10/27 07:42

投稿

int32_t
int32_t

スコア22007

answer CHANGED
@@ -1,10 +1,11 @@
1
1
  > 可変長のバイナリデータの場合どのように読み込む方法があるでしょうか?
2
2
 
3
3
  このフォーマットの場合、キャストで構造体にすることはできません。
4
- ポインタかインデックスを1つずつ進めながらデータをパーズするしかないです。
4
+ ポインタかインデックスを1つずつ進めながら入力データをパーズするしかないです。
5
5
 
6
6
  例:
7
7
  * `struct Users`: 削除
8
+ * `struct User`: `name_length` を削除
8
9
  * `struct User`: `name` を `std::string` にする
9
10
 
10
11
 
@@ -13,6 +14,6 @@
13
14
  1. Userの数でループ
14
15
  --`User` インスタンスを作成
15
16
  -- ポインタが指す値を読んで `User::id` に格納、ポインタを進める
16
- -- ポインタが指す値を読んで `User::name_length` に格納、ポインタを進める
17
+ -- ポインタが指す値を読んで変数 `nameLength` に格納、ポインタを進める
17
- -- ポインタが指すアドレスから `User::name_length` のエリアで `std::string` を作って `User::name` に格納。ポインタに `User::name_length` を足す
18
+ -- ポインタが指すアドレスから長さ `nameLength` のエリアで `std::string` を作って `User::name` に格納。ポインタに `nameLength` を足す
18
19
  -- ...