FFmpeg:FFmpeg中的av_free()和av_freep()区别最直接的区别就是av_freep()会在av_free()的基础上,把传⼊的指针再置为NULL。
FFmpeg源代码:
av_free()
void av_free(void *ptr)
{
#if CONFIG_MEMALIGN_HACK
if (ptr) {
int v= ((char *)ptr)[-1];
av_assert0(v>0 && v<=ALIGN);
free((char *)ptr - v);
}
#elif HAVE_ALIGNED_MALLOC
_aligned_free(ptr);
#else
free(ptr);
#endif
}
av_freep()
void av_freep(void *arg)
{
void **ptr = (void **)arg;
av_free(*ptr);
最漂亮的av*ptr = NULL;
}
1.
发布评论