Thanks very much!
I understand now.....I think I overlooked some facts before posting.
Let me restate what I understood to mke things absolutely clear in my mind:
First check of TextureImage[] has been allocated any memory:when the LoadBMP() fails, the if condition will be skipped and the status will be returned.
If instead, we just free TextureImage[]->data without checking for the fact if whether or not TextureImage[] has been allocated any memory, it would indeed be erroneous because we would be freeing *unallocated* memory.
Is that right?
So....the first if namely : if (TextureImage[0]) checks if texture exists and the next if namely: TextureImage[0]->data will check if the data structure member has been allocated or not.
BUT: in what circumstances will one exist independently of the other???

Sorry dont get that......