A size_t can be equal to zero.  You don't normally need to check for overflow with a size_t if you're working in a byte level as it's guaranteed to be big enough to describe the size of all memory on the machine.