Стандарт C гарантирует, что int
может хранить все возможные размеры массива. По крайней мере, это то, что я понимаю из чтения §6.5.2.1, подраздел 1 (Ограничения подписи):
Одно из выражений должно иметь тип '' указатель на тип объекта, другое выражение должно имеют целочисленный тип, а результат имеет тип type.
Поскольку мы будем использовать int
как индексы массива, почему мы должны использовать size_t
для определения размера массива?
Почему strlen()
возвращает size_t
, когда int
будет достаточно?