на эту сумму все равно не получится)
я такое же впечатление, какэтот ответ, тот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, поскольку установка максимально допустимого размера на основе целочисленного типа со знаком не имеет никакого смысла.