Тип переменной индекса массива в Си
https://stackoverflow.com/questions/
3174850/what-is-the-correct-type-for-array-indexes-in-c
https://sergvasiliev.medium.com/about-size-t-and-ptrdiff-t-
a1654234d842
Вот размеры и длины я привык (и считаю корректным) указывать в size_t.
Но если хочется итерироваться по массиву, указывать элемент в нём, то
какой тип применять для переменной содержащей индекс? size_t плох тем,
что он беззнаковый, так что при логической ошибке или переполнении его
значение может стать огромным из-за переполнения и оно уйдёт в
бесконечный цикл например. Подобное отлаживать не очень приятно. А я уже
не раз напарывался на подобную ошибку.
Хочется использовать число со знаком. int может быть слишком маленьким.
ssize_t определён только в POSIX и гарантирует только [-1, SSIZE_MAX].
Куча людей указывается на ptrdiff_t. Но и он может, очевидно, быть
меньше size_t.
Посмотрел код всяких других проектов серьёзных, типа Redis. Они все
size_t используют. И пока я тоже остаюсь на нём, не забывая про косяки
неприятные во время разработки.