It will free the memory pointed by the pointer, leaving the pointer set to an unallocated segment of memory.
If you don't use malloc or calloc between the calls it will give you a Segmentation Fault.
"Best practice is that a pointer passes out of scope immediately after being freed." means that the pointer should stay on the stack so that it should not be set NULL explicitly because it will eventually go out of scope and be freed.