Возможный дубликат:
Есть ли бесплатный (ptr), где ptr является NULL поврежденной памятью?
Я пишу функцию C, которая освобождает указатель, если он был malloc() ed. Указатель может быть либо NULL (в случае, когда произошла ошибка, так и у кода не было возможности выделить что-либо) или выделено с помощью malloc(). Можно ли использовать free(ptr); вместо if (ptr != NULL) free(ptr);?
 gcc вообще не жалуется даже на -Wall -Wextra -ansi -pedantic, но это хорошая практика?