我已经看到了一些使用alsa api进行捕获/回放的代码。其中一些使用snd_pcm_hw_params_malloc()
,而另一些使用snd_pcm_hw_params_alloca()
。
它们之间的区别除了一个是函数,另一个是宏。snd_pcm_hw_params_alloca()宏是否替换为snd_pcm_hw_params_malloc()?
snd_pcm_hw_params_alloca()
使用alloca()
在堆栈上分配结构。这意味着当您的函数返回时,它会自动释放。
snd_pcm_hw_params_malloc()
使用malloc()
。您有责任在不再需要时致电snd_pcm_hw_params_free()
。