¿Por qué no puedo asignar matrices como & a = & b?

Tengo un problema al asignar una matriz como:

int a[]; int b[] = {1,2,3}; &a = &b; 

Sé que podría usar punteros, pero quiero intentarlo de esa manera …

No puede asignar matrices en C. Puede copiarlas con la función memcpy() , declarada en :

 int a[3]; int b[] = {1,2,3}; memcpy(&a, &b, sizeof a); 

De esa manera no funciona, como has encontrado. No puede asignar matrices en C.

Las estructuras, sin embargo, son asignables. Entonces puedes hacer esto:

 typedef struct { int x[3]; } T; T a; T b = { { 1, 2, 3 } }; a = b;