C++ · Essencial · Inglês · Técnico
sizeof
Operador avaliado na compilação que devolve o tamanho em bytes de um tipo ou objeto, como valor do tipo size_t. O resultado depende da plataforma e do alinhamento.
Onde usar
Usado para saber o tamanho de structs, alocar buffers e calcular elementos de arrays. Em review, surgem dúvidas sobre padding, que faz a struct ser maior que a soma dos campos.
Em código
struct S { char c; int i; };
static_assert(sizeof(char) == 1);
std::cout << sizeof(S); // geralmente 8
std::cout << sizeof(int); // geralmente 4Exemplos
The sizeof of this struct is 16 because of padding.
O sizeof dessa struct é 16 por causa do padding.
Don't use sizeof on a pointer to get the array size.
Não use sizeof em um ponteiro para saber o tamanho do array.
Cuidado
sizeof de um ponteiro é o tamanho do ponteiro, não do que ele aponta, e sizeof de um std::vector não inclui os elementos.
Origem
Contração de size of, tamanho de.