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つあることがわかります。