以前对于各种内存分配方式都没有研究过,分配了就用。可是最近在调试音频驱动中才注意到不同的分配方式导致运行的结果大相径庭。
特别要注意的就是动态内存分配malloc,它分配的地址空间在逻辑上是连续的,在物理上却不一定连续。而静态数组在物理上就是连续的。难怪我使用静态数组作为音频数据的缓冲区来播放,声音是正常的,但使用malloc分配的空间就是噪声,尽管用trace观察(Indirect Dump)malloc分配的空间里放的是连续的音频数据。难道trace看的不是物理地址?
发布
文章评论(0条评论)
登录后参与讨论