av_freep的参数问题

来源:8-3 实战音频重采样2

Swordsemperor

2020-12-20

老师,释放重采样内存那一块,
if(dst_data){
av_freep(&dst_data[0]);
}
av_freep(dst_data)

第一个av_freep()传进去的参数是缓冲区地址的地址, 第二个传进去的参数却是缓冲区的地址。我看av_freep的定义,传进去的参数就是缓冲区地址的地址,那是不是应该这样写呢:
if (dst_data[0])
av_freep(&dst_data[0]);
if (dst_data)
av_freep(&dst_data);

写回答

1回答

李超

2020-12-20

你这样做,如果dst_data 为NULL,你的程序就会崩溃

0
5
慕慕0371190
回复
李超
老师, if (dst_data) av_freep(&dst_data[0]); if (dst_data) av_freep(&dst_data); 上面那样我测试了一下不会崩溃。这里不去判断dst_data指针是否为空都把他释放掉,是不是为了防止内存泄漏之类的情况?
2022-02-20
共5条回复

音视频小白系统入门课 音视频基础+ffmpeg原理

掌握音视频采集、编解码、RTMP传输协议等核心基础

2318 学习 · 813 问题

查看课程