Change
float* result = (float*)&bufferList.mBuffers[0].mData; // the data from microphone is stored in mData. However, your ’result' actually points to the address of mData.
To
float* result = (float*)bufferList.mBuffers[0].mData;