首页 > 解决方案 > snd_pcm_hw_params_alloca() 和 snd_pcm_hw_params_malloc() 有什么区别?

问题描述

我已经看到了一些使用 alsa api 进行捕获/回放的代码。其中一些正在使用snd_pcm_hw_params_malloc(),而另一些正在使用snd_pcm_hw_params_alloca()

除了一个是功能,一个是宏之外,它们之间的区别是什么。snd_pcm_hw_params_alloca() 宏是否被 snd_pcm_hw_params_malloc() 取代?

标签: clinuxaudioalsa

解决方案


snd_pcm_hw_params_alloca()用于alloca()在堆栈上分配结构。这意味着当您的函数返回时它会自动释放。

snd_pcm_hw_params_malloc()使用malloc(). snd_pcm_hw_params_free()您有责任在不再需要时致电。


推荐阅读