Размер объекта должен быть совместим с типом sizet в C, потому что стандарт гарантирует, что sizet может вместить в себя размер максимально возможного объекта в системе. 1
Размер sizet выбирается таким образом, чтобы в него можно было записать максимальный размер теоретически возможного массива или объекта. 1 Например, на 32-битной системе sizet будет занимать 32-бита, на 64-битной — 64-бита. 1
Использование size_t безопаснее и эффективнее, чем использование обычных беззнаковых целочисленных типов, так как позволяет писать циклы и счётчики, не беспокоясь о возможном переполнении при смене платформы. 1
Также прямое использование size_t означает, что не нужно беспокоиться об изменении типа данных при перекомпиляции для другой архитектуры. 3