size_t
- это целое число без знака, которое может содержать размер самого большого объекта, который вы можете выделить. Это полезно для индексации, потому что это означает, что он может индексировать в самый большой массив, который вы можете выделить.
Это не означает, что это требуется или даже обязательно рекомендуется для индексации. Вы можете использовать любой целочисленный тип, достаточный для индексации массива. int_fast32_t
может быть быстрее, uint_least16_t
может быть меньше в структуре и так далее. Знайте свои данные, и вы сможете сделать правильный выбор.
Виртуальная память выходит за рамки C или C ++. С их точки зрения, вы просто индексируете память, и ваша платформа должна заставить ее работать. На практике ваше приложение использует только виртуальные адреса; ваш ЦП / ОС переводит виртуальный адрес в физический адрес за кулисами. Вам не о чем беспокоиться.