Warrior is right. If it wasn't clear, with a structure, what he meant was that the total memory allocated will be sizeof(int) + sizeof(char)..
In anycase, why are unions useful?.. Well, one application would be if u want to easily "go through" a variable. For example, in the example above, if the "int" has a particular value that u had set, using a "char" array variable would allow u to obtain a byte from the int without having to worry about bit shifting/masking/pointers and such..