2015-01-15 71 views
0

我学习有关ALSA基地本文就返回错误的地址。如果我们将其声明为int playback_callback (snd_pcm_sframes_t nframes)的本地,则会运行并且有时会提示Bad地址错误。如果我们使用malloc分配buf,则错误消失。IOCTL全球阵列

正如我从snd_pcm_writei的源代码看到的,它调用ioctl将缓冲区发送到设备。那么,为什么ioctl的行为如我所述?

我使用Ubuntu 14.04 64位

+1

这闻起来像地址对齐问题。 –

回答

1

该程序被马车。

buf有足够的空间用于4096个采样,但该设备配置为每帧两个采样,因此4096帧将溢出缓冲区。