合理的な説明がないように見える永続的な問題に出くわしました。問題は、メモリ バッファに格納されているファイルのサイズであり、符号なし整数for (i = size - 1; i >= 0; i--) {etc.}
である for ループ内にあるようです。の場合に停止する代わりに、ラップアラウンドします。その結果、セグメンテーション違反が発生します。条件を に変更すると、問題が解決します。size
i
i == 0
i = 4294967295
i > 0
でも、これってなんかおかしくないですか?C で for ループがどのように動作するかの重要な部分が欠けているに違いありません。初期化、条件付きチェック、インクリメント/デクリメント、条件付きチェックなどのスキームに従っていませんか?
どんな助けでも大歓迎です!