回答編集履歴
1
文言
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
|
-
-- ポインタが指す値を読んで `
|
17
|
+
-- ポインタが指す値を読んで変数 `nameLength` に格納、ポインタを進める
|
17
|
-
-- ポインタが指すアドレスから `
|
18
|
+
-- ポインタが指すアドレスから長さ `nameLength` のエリアで `std::string` を作って `User::name` に格納。ポインタに `nameLength` を足す
|
18
19
|
-- ...
|