av_freepとav_freeの違い
Difference Between Av_freep
ffmpegはav_freepを推奨しています。av_freepはダングリングポインタの問題を解決できます。
avfreepの使用法は次のとおりです。
int main() { int size = 100 uint8_t *data = NULL data = av_malloc(size) av_freep(&data) //av_free(data) return 1 }
av_freepを使用した後、データはNULLになり、av_freeを使用した後、データはワイルドポインターになります。
av_freepの実装は次のとおりです。
void av_freep(void *arg) { void *val memcpy(&val, arg, sizeof(val)) memcpy(arg, &(void *){ NULL }, sizeof(val)) av_free(val) }
ポインタをクリアする操作がもう1つあることがわかります。