Как привести C struct просто еще один тип структуры, если их объем памяти равен?

У меня есть 2 матричные структуры означает равные данные, но имеют различную форму, как эти:

// Matrix type 1.
typedef float Scalar;
typedef struct { Scalar e[4]; } Vector;
typedef struct { Vector e[4]; } Matrix;

// Matrix type 2 (you may know this if you're iPhone developer)
// Defines CGFloat as float for simple description.
typedef float CGFloat;
struct CATransform3D
   {
   CGFloat m11, m12, m13, m14;
   CGFloat m21, m22, m23, m24;
   CGFloat m31, m32, m33, m34;
   CGFloat m41, m42, m43, m44;
};
typedef struct CATransform3D CATransform3D;

Их объемы памяти равны. Поэтому я считаю, что есть способ конвертировать эти типы без каких-либо операций с указателями или копировать так:

// Implemented in external lib.
CATransform3D CATransform3DMakeScale (CGFloat s,x, CGFloat sy, CGFloat sz);
Matrix m = (Matrix)CATransform3DMakeScale ( 1, 2, 3 );

Это возможно? В настоящее время компилятор выводит сообщение «ошибка: преобразование в запрошенный не скалярный тип».

Ответы на вопрос(2)

Ваш ответ на вопрос