ここで本当に基本的な質問:
memset
構造体を扱うときに使用する CoreAudio コードの束を見てきましたが、その理由を理解できませんでした。これは .m ObjC ファイルからのものです。
以下のコードブロックの行は次のとおりです。
memset(&clientFormat, 0, sizeof(clientFormat));
//-------
AudioStreamBasicDescription clientFormat;
if ( sourceFormat.mFormatID == kAudioFormatLinearPCM ) {
clientFormat = sourceFormat;
} else {
memset(&clientFormat, 0, sizeof(clientFormat));
int sampleSize = sizeof(AudioSampleType);
clientFormat.mFormatID = kAudioFormatLinearPCM;
clientFormat.mFormatFlags = kAudioFormatFlagsCanonical;
clientFormat.mBitsPerChannel = 8 * sampleSize;
clientFormat.mChannelsPerFrame = sourceFormat.mChannelsPerFrame;
clientFormat.mFramesPerPacket = 1;
clientFormat.mBytesPerPacket = clientFormat.mBytesPerFrame = sourceFormat.mChannelsPerFrame * sampleSize;
clientFormat.mSampleRate = sourceFormat.mSampleRate;
}