我为什么要用“为什么?”;PaUtil“分配内存”;而不是malloc()?
我看了看,想知道作者为什么使用我为什么要用“为什么?”;PaUtil“分配内存”;而不是malloc()?,c,memory-management,portaudio,C,Memory Management,Portaudio,我看了看,想知道作者为什么使用 data.rBufToRTData = PaUtil_AllocateMemory(sizeof(OceanWave*) * 256); 而不是 data.rBufToRTData = malloc(sizeof(OceanWave*) * 256); 我在Portaudio网站上找不到这个问题的答案。图书馆使用自己的分配功能有几个原因: 他们可以使用内存预分配或缓存来提高性能 它允许他们跟踪引用,从而更容易捕获内存泄漏 如果将Portaudio用作DLL,则
data.rBufToRTData = PaUtil_AllocateMemory(sizeof(OceanWave*) * 256);
而不是
data.rBufToRTData = malloc(sizeof(OceanWave*) * 256);
我在Portaudio网站上找不到这个问题的答案。图书馆使用自己的分配功能有几个原因:
无论哪种方式,如果提供了库的分配函数和免费函数,最好使用它们。您不应该使用
PaUtil\u AllocateMemory()
。它不是PortAudio公共API的一部分。我已提出申请。谢谢你提出这个问题
也就是说,这个示例似乎是为了演示在PortAudio中使用一些低级内部数据结构。特别是PortAudio环形缓冲区。不应将其视为使用PortAudio公共API的好例子