0

Объясните, пожалуйста, что означает size_t? То есть, я читал, что в 64-битной системе, size_t занимает 64 бита. Но ведь, если у нас есть массив, например, из 20 целых чисел int arr[20] = {1, 2, ..., 20}, то в таком массиве - 80 байт, потому что каждое целое число занимает 4 байта. И по сути, когда мы пишем: size_t arrsize = sizeof(arr), то выходит, что arrsize занимает 80 байт, и тогда по идее нельзя применять size_t, поскольку size_t занимает 64 бита в 64-битной системе. В чем ошибка?

P.S. И в чем тогда вообще смысл от size_t, если и long long тоже занимает 8 байт в 64-битной системе? Заранее спасибо!

prostak
  • 341
  • 1
    "arrsize занимает 80 байт" Он не "занимает" 80 байт. В нем будет записано число 80, которое вполне умещается в 64 бита (т.к. меньше 2^64). "в чем тогда вообще смысл от size_t, если и long long тоже занимает 8 байт" А что на счет 32-битных систем? – HolyBlackCat Jan 04 '21 at 04:39
  • 1
    https://ru.stackoverflow.com/questions/387641/Что-за-тип-size-t возможно здесь ответы на ваши вопросы – Ildar Jan 04 '21 at 05:15

0 Answers0