Re: C: Не проверяет размер массива.
От: VTT http://vtt.to
Дата: 25.03.15 06:39
Оценка: +1
Здравствуйте, 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]'

Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Отредактировано 25.03.2015 6:40 VTT . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.