ヘッダーの後に、WAVファイルには一連のサンプルが含まれています。各サンプル値を指定の係数でスケールすると、オーディオのボリュームが変化します。各サンプル値に2.0を掛けると、元のオーディオのボリュームが倍になります。各サンプルを0.5倍にすると、ボリュームは半分になります。型これまでのところ、int、bool、char、double、float、longなど、Cにはさまざまな型があることを見てきました。非常に正確に定義することを可能にする多くの他の型の宣言があります。この実習では、特に2つのタイプが役立ちます。整数を格納する型です。WAVファイルのヘッダの各バイトをuint8_t値として扱うことができます。整数を格納する型です。WAVファイル内の各オーディオサンプルをint16_t値として扱うことができます。始め方GitHubアカウントを使用してide.cs50.ioにログインします。https://cdn.cs50.net/2020/fall/labs/4/lab4.zipを実行し、実習の配布コードのZipファイルをダウンロードします。lab4.zipを実行し、そのZipファイルを解凍します。lab4を実行してディレクトリをlab4ディレクトリに変更します。実装の詳細volume.cの実装を完了して、サウンドファイルの音量を指定の係数で変更します。このプログラムは、3つのコマンドライン引数を受け取ります。元のオーディオファイルのボリュームをスケールする量を表します。2.0の場合、プログラムはinputのオーディオファイルのボリュームを倍にし、新しく生成されたオーディオファイルをoutputに保存します。プログラムは、最初に入力ファイルからヘッダーを読み取り、出力ファイルに書き込みます。このヘッダの長さは常に正確に44バイトであることを思い出してください。volume.cは、ヘッダのバイト数に等しいHEADER_SIZEという名前の変数をすでに定義していることに注意してください。サンプルを一度に1つずつWAVファイルから読み込みます。プログラムでは、各サンプルをファクターで乗算し、新しいサンプルを出力ファイルに書き込みます。WAVファイルは16ビットの符号付き値をサンプルとして使用すると仮定します。実際には、WAVファイルのサンプルあたりのビット数はさまざまですが、この実習では16ビットのサンプルを想定しています。mallocを使用するプログラムは、メモリーをリークしてはいけません。ウォークスルーヒント入力ファイルから読み込むWAVファイルヘッダのデータを格納するために、バイトの配列を作成します。uint8_t型を使用してバイトを表すと、次のような構文でヘッダーのnバイトの配列を作成できます。header[n];nはバイト数で置き換えます。使用して、ヘッダーを読み書きできます。作成することもできます。int16_t型を使用してオーディオサンプルを格納すると、次のような構文で変数bufferを作成できます。(変数のアドレスを取得するために&演算子が使用されることを思い出してください)。ドキュメントはこちらにあります。どちらの関数も以下の引数を受け付けることに注意してください。正常に読み込まれたデータの数を返します。これは、ファイルの最後に達したことを確認する場合に便利です。コードのテスト方法プログラムは、次の例に従って動作する必要があります。再生すると、input.wavの2倍の音量になります。0.5output.wavを再生すると、input.wavの半分の音量になります。解決方法がわかりませんか?check50を使用して以下を実行し、コードの正確さを評価してください。コンパイルとテストは必ず自分で行ってください。cs50/labs/2021/x/volume以下を実行し、style50を使用してコードのスタイルを評価します。次のコマンドを実行し、GitHubのユーザー名とパスワードを入力してログインします。languages.。