O tipo size_t armazena o tamanho de qualquer tipo de objeto, em bytes. É um apelido para um tipo inteiro que aceita apenas valores positivos (unsigned).
É o tipo retornado pelo operador sizeof.
Não se pode assumir que size_t é equivalente a um unsigned int – seu tamanho exato é dependente da plataforma.