Подскажите пожалуйста это так и должно быть что C компилятор не проверяет размер передаваемого массива в функцию? (Я ожидал обратное)
int Myfunc(int (*MacArray)[6])
{
int i =0;
for(i = 0; i < 6; ++i )
(*MacArray)[i] = i;
return 0;
}
int main(void) {
int array[6]; /*<---- Если тут указать другое число, что компилятор скушает и ничего не скажет*/
Myfunc(&array);
int i =0;
for(i = 0; i < 6; ++i )
printf("%d \n", array[i]);
return 0;
}
Code on Ideone
Если есть желание — найдется 1000 возможностей.
Если нет желания — найдется 1000 причин.