扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

FFmpeg中的av_free()和av_freep()区别

扬州沐宇科技
2024-01-04 15:55:29
ffmpeg

在FFmpeg中,av_free()和av_freep()都用于释放内存,但是有一些区别。

  1. av_free(): av_free()函数用于释放由av_malloc()、av_mallocz()、av_calloc()或av_realloc()分配的内存。它采用一个指向要释放的内存块的指针作为输入参数,并将该指针设置为NULL,以防止对已释放的内存进行误用。

示例用法:

uint8_t* buffer = av_malloc(1024);
...
av_free(buffer);
buffer = NULL;
  1. av_freep(): av_freep()函数通过将指针设置为NULL来释放内存。与av_free()不同,它不需要传递指向指针的指针,而是直接接受指针作为输入参数。

示例用法:

uint8_t* buffer = av_malloc(1024);
...
av_freep(&buffer);

总结: 当你有一个指向指针的指针时,你可以使用av_freep()函数来释放内存。否则,你可以使用av_free()函数来释放内存,并将指针设置为NULL。

扫码添加客服微信