Cambiar la no modificabilidad de una matriz utilizando una estructura

Del comentario de Kerrek SB sobre ¿Por qué no puede un lvalue modificable tener un tipo de matriz?

Puede asignar trivialmente matrices haciéndolos miembros de una estructura y luego asignando esos valores.

Qué significa eso? ¿Significa que si una estructura tiene un miembro de matriz, entonces el miembro de matriz puede ser modificable? Pero el siguiente ejemplo no funciona:

Defino un tipo de estructura con un miembro que es una matriz

typedef struct { int arr[3];} MyType; 

Entonces

 MyType myStruct; myStruct.arr = (int[]) {3,2,1}; 

y obtuvo error: assignment to expression with array type .

No, significa que si asigna una instancia de una struct como la de su ejemplo a otra struct , está asignando efectivamente matrices.

 struct Array { int array[3]; }; struct Array A; struct Array B = {{0, 1, 2}}; // by Chris Dodd // This is valid! A = B;