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

回答編集履歴

1

コメントでのやりとりを反映

2022/06/11 10:10

投稿

int32_t
int32_t

スコア21933

answer CHANGED
@@ -1,3 +1,8 @@
1
1
  `pb[1]` が `BUFSIZ` を超えると、範囲外アクセスを起こしてクラッシュする可能性が高いです。
2
2
 
3
3
  `BUFSIZ` を大きくするとか、`malloc()` でメモリを確保するなどで対処しましょう。
4
+
5
+ (最初の質問文のコードに対して)
6
+ * pb[0] が初期化以降更新されていないので、pb[1] が大きい値になりがちです。
7
+ * fp fw の NULL チェックは fp fw を使うより前(`while` より上)でやりましょう。
8
+ * `lldb -o run -- 実行ファイル名` のあと `bt` で、クラッシュの種類やクラッシュしたソース上の場所を確認できます。