検索

ホームページ  >  に質問  >  本文

C言語ではループ本体が実行されない

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

リーリー
某草草某草草2807日前974

全員に返信(1)返信します

  • 巴扎黑

    巴扎黑2017-06-05 11:13:33

    まずは

    ループ本体が実行されます。
    ログには 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 < /code>
    ただし、読み取り長 readBytesPer = sizeof(struct BLOCK_16bit_2channel) * readSamplePer、readSamplePer の値は 22050*10 です

    読み取り長は buff をはるかに超えており、メモリの読み取りと書き込みは範囲外になると、最終的なプログラムがクラッシュします。 🎜

    返事
    0
  • キャンセル返事