2015-01-15 65 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幀將溢出緩衝區。