如果p不是NULL,重复free(p),与随便拿一个不是malloc出来的p去free没什么差别
当p==NULL时,则free(p)被忽略
http://msdn.microsoft.com/en-us/library/we1whae7.aspx
... If memblock is NULL, the pointer is ignored and free immediately returns. Attempting to free an invalid pointer (a pointer to a memory block that was not allocated by calloc, malloc, or realloc) may affect subsequent allocation requests and cause errors.