av_freep和av_free的區別

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的操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章