на эту сумму все равно не получится)

я такое же впечатление, какэтот ответ, тотsize_t стандарт всегда гарантирует, что он будет достаточно большим, чтобы вместить максимально возможный тип данной системы.

Однако этот код не компилируется в gcc / Mingw:

#include <stdint.h>
#include <stddef.h>

typedef uint8_t array_t [SIZE_MAX];

ошибка: размер массива 'array_t' слишком велик

Я что-то не так понимаю в стандарте? Являетсяsize_t разрешено быть слишком большим для данной реализации? Или это еще одна ошибка в Mingw?

РЕДАКТИРОВАТЬ: дальнейшие исследования показывают, что

typedef uint8_t array_t [SIZE_MAX/2];   // does compile
typedef uint8_t array_t [SIZE_MAX/2+1]; // does not compile

Который случается так же, как

#include <limits.h>

typedef uint8_t array_t [LLONG_MAX];           // does compile
typedef uint8_t array_t [LLONG_MAX+(size_t)1]; // does not compile

Поэтому я склонен полагать, что это ошибка в Mingw, поскольку установка максимально допустимого размера на основе целочисленного типа со знаком не имеет никакого смысла.

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

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