Здравствуйте, k55, Вы писали:
k55>Подскажите пожалуйста это так и должно быть что C компилятор не проверяет размер передаваемого массива в функцию? (Я ожидал обратное)
Во-первых вы передаете не массив, а указатель на массив (это далеко не одно и то же).
Во-вторых нормальные компиляторы очень даже ругаются на несовместимость указателей. Возможно это просто ideone подавляет предупреждения.
gcc:
main.c:13:3: warning: passing argument 1 of 'Myfunc' from incompatible pointer type [enabled by default]
Myfunc(&array);
^
main.c:3:5: note: expected 'int (*)[6]' but argument is of type 'int (*)[7]'
int Myfunc(int (*MacArray)[6])
VS (c /TC)
main.c(13): warning C4048: different array subscripts : 'int (*)[6]' and 'int (*)[7]'
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.