в темной аллее.

ет ли стандарт C, чтобы размер массиваn элементы будутn раз размер элемента, либо явным утверждением или строгим логическим выводом из его требований?

Например, могint (*x)[5] = malloc(5 * sizeof **x); не удается запросить достаточно места для массива из пятиint?

C 2011 [N1570] 6.5.3.4 7 показывает пример вычисления количества элементов в массиве какsizeof array / sizeof array[0], Однако примеры не являются нормативной частью стандарта (согласно параграфу 8 форварда).

6.2.5 20 говорит, что тип массива описывает непрерывно распределенный непустой набор объектов с определенным типом, но ничего не говорит об общем объеме требуемой памяти.

Это исключительно вопрос языка-юриста; фактические реализации не имеют значения. (Чтобы успокоить тех, кому нужны конкретные примеры, выдвиньте гипотезу о реализации C, которая требует дополнительного управления памятью для больших массивов, поэтому создание массива требует создания дополнительных данных для управления памятью.)

Ответы на вопрос(1)

Ваш ответ на вопрос