回答編集履歴

1

前回、投稿に誤りがありましたので修正しました。

2023/04/29 08:04

投稿

tatsu99
tatsu99

スコア5447

test CHANGED
@@ -1,7 +1,6 @@
1
1
  jimbeさんが言われていることを図示すると以下のようになります。
2
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-04-29/d374c370-135a-43e6-bea2-ca18b83f3a8b.png)
2
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-04-29/2c7e4148-9f3c-409b-a3d6-2651a201867d.png)
3
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-04-29/0d8b8bd1-aaf1-40b1-a019-cafb04771b28.png)
3
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-04-29/f533f8de-2054-4a11-b878-a7750d57e74b.png)
4
-
5
4
  1回目のmallocの時は、問題ありません。
6
5
  2回目のmallocの時、1回目でmallocしたメモリを参照するポインターがなくなります。
7
6
  そして、2人目のデータは、2回目にmallocしたメモリの先頭に書き込まれます。
@@ -9,10 +8,10 @@
9
8
  そして、3人目のデータは、3回目にmallocしたメモリの先頭に書き込まれます。
10
9
 
11
10
  あなたが、すべきことは、以下のような状態にすることです。
12
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-04-29/32b0d75e-c61d-4ab3-b027-adf4ae7a5e05.png)
11
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-04-29/94549f6f-195b-435c-9ede-9b76028fbb89.png)
13
12
 
14
13
  その為には、毎回
15
14
  1.前回mallocしたメモリのデータを、今回mallocしたデータにコピーする。
16
15
  2.前回mallocしたメモリを解放する。
17
- 3.今回分のデータを書き込むのは、mallocしたメモリの先頭ではなく、最後に書き込むようにする。
16
+ ~~3.今回分のデータを書き込むのは、mallocしたメモリの先頭ではなく、最後に書き込むようにする。~~
18
17
  という作業が必要になります。