根据CString的GetBufferSetLength()的MSDN文档,对该方法的调用之后应该是对ReleaseBuffer()的匹配调用。但是,在同一页面的示例代码中,注释指出调用ReleaseBuffer()是不必要的:CSimpleStringstr(pMgr);LPTSTRpstr=str.GetBufferSetLength(3);pstr[0]=_T('C');pstr[1]=_T('u');pstr[2]=_T('p');//NoneedfortrailingzeroorcalltoReleaseBuffer()//becauseGetBufferSetLength(
音频播放已在SamsungGalaxyS3和HTCOne上成功测试,但在运行Android4.4的LGENexus4上严重损坏。发生的情况是,可以听到几分之一秒的完美音频,然后是几秒钟的静默,接着是另一段短音频,然后是静默,如此下去。所以看起来音频流逻辑最终陷入了一个永恒的开始-播放-欠载-停止循环。每隔一秒左右我就会看到以下警告记录:12-0900:55:56.98210842-14365/com.soundrop.androidW/AudioTrack﹕releaseBuffer()track0x7b03f4e0name=s:176;n:2;f:-1disabledduetopre
来自CStringtochar*,ReleaseBuffer()必须在GetBuffer()之后使用。但为什么?如果我在GetBuffer()之后不使用ReleaseBuffer()会发生什么?谁能给我举个例子?谢谢。 最佳答案 我不确定这是否会导致内存泄漏,但您必须调用ReleaseBuffer以确保更新CString的私有(private)成员。例如,ReleaseBuffer将通过查找终止null字符来更新CString的长度字段。 关于c++-如果我在GetBuffer之后不调用