Correct wrong use of C union data structure