Всегда принимал это как должное, но недавно задумался, а почему собственно нельзя в Си присваивать один массив другому?
То есть почему нельзя сделать так:
int a[10];
int b[10];
a = b;
Однако, если обернуть всё в структуру, то можно так:
struct {int array[10]; } a, b;
a = b;
Сломалось ли бы что-то в языке, если бы присвоение массивов a = b работало как условный memcpy(a, b, sizeof(b)) ?