What’s the runtime behavior of below code piece?(单选)
int *p = (int *)malloc(sizeof(int));
p = NULL;
free(p);
Compiling error: free can't be applied on NULL pointer
Memory leak happens
Dangling pointer is generated
May crash when free() is called with NULL input