ffmpeg推荐用av_freep,av_freep可以解决dangling指针的问题:
avfreep的用法如下:
int main()
{
int size = 100;
uint8_t *data = NULL;
data = av_malloc(size);
av_freep(&data);
//av_free(data);
return 1;
}
采用av_freep后,data为NULL,而用av_free,则data为野指针。
其中av_freep的实现如下:
void av_freep(void *arg)
{
void *val;
memcpy(&val, arg, sizeof(val));
memcpy(arg, &(void *){ NULL }, sizeof(val));
av_free(val);
}
可见,多了一个指针清0的操作。