[alsa-devel] Scope of snd_pcm_hw_params_alloca() ?
tiwai at suse.de
Thu Mar 13 17:44:27 CET 2008
At Thu, 13 Mar 2008 16:21:51 +0000,
Alan Horstmann wrote:
> I've spent a couple of days pining this down.
> snd_pcm_hw_params_alloca() is part of the user API -right? But accomplished
> as a #define in pcm.h.
Because alloca can be used only with a macro due to its nature.
> However if it is called inside a function, and the pointer stored for future
> use, after leaving the function the allocation seems to have gone, and
> attempting thereafter to use the pointer to access the hwparams space in
> another API function results in seg-fault.
> This seems rather counter-intuitive (ie unexpected) to someone who has no
> knowledge of the inner workings, but simply uses the API; the allocation
> disappears without having been specifically free'd or released in any way. I
> know that calling it globally gets round the problem, but certainly I could
> do without all the debug needed to discover that.
Well, alloca() is an (almost) standard stuff.
You had a good lecture for a bit more deep studying C :)
More information about the Alsa-devel