C言語ではループ本体が実行されない
某草草
某草草 2017-06-05 11:11:33
0
1
936

RT 図のとおり、図のコードではフレームの出力結果は100となっていますが、ループ本体は実行されていませんので、ループ本体が切れていないかよく確認してください。返品その他の発言、どこに問題があるのか​​聞いてもいいですか? (142 行目のコメントを解除すると、0 ~ 99 が正しく出力されます)

リーリー
某草草
某草草

全員に返信(1)
巴扎黑

まずは

ループ本体が実行されます。
ログには 0 があり、初めて s=0 のときにループに入ったことを示しています。

それでは

プログラムがクラッシュしたため実行されなかったようです。
最後のエラーメッセージprocess excited after ... with return value 3221225477

クラッシュの原因

問題は 149 行目の fread(&block, 1, readBytesPer, fp); ですfread(&block, 1, readBytesPer, fp);
作为buff的block,其长度只有一个struct BLOCK_16bit_2channel
但是读取的长度readBytesPer = sizeof(struct BLOCK_16bit_2channel) * readSamplePer バフとして使用される block の長さは 1 つだけです struct BLOCK_16bit_2channel
ただし、読み取り長 readBytesPer = sizeof(struct BLOCK_16bit_2channel) * readSamplePer、readSamplePer の値は 22050*10 です

読み取り長は buff をはるかに超えており、メモリの読み取りと書き込みは範囲外になると、最終的なプログラムがクラッシュします。 🎜
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート