size_t
- это тип без знака, который может содержать максимальное целочисленное значение для вашей архитектуры, поэтому он защищен от целочисленных переполнений из-за знака (со знаком int 0x7FFFFFFF
, увеличенного на 1, вы получите -1) или короткого размера (без знака short int 0xFFFF, увеличенное на 1, даст вам 0).
В основном используется для индексации массивов / циклов / адресной арифметики и так далее. Такие функции, как memset()
и аналогичные, принимают только size_t
, поскольку теоретически у вас может быть блок памяти размером 2^32-1
(на 32-битной платформе).
Для таких простых циклов не беспокойтесь и используйте только int.