> Now we can't have an A as a member of X? (it would free a null > pointer) Actually, there is nothing wrong with calling free on a null pointer. From the C 89 standard: > The free function causes the space pointed to by ptr to be > deallocated, that is, made available for further allocation. If > ptr is a null pointer, no action occurs.