zero size malloc [duplicate]
The behaviour is implementation defined, you will receive either a NULL pointer or an address. Calling free for the received pointer should however not cause a problem since: free(NULL) is ok, no operation is done free(address) is ok, if address was received from malloc (or others like calloc etc.)