ExpertiDict

C++ · Essencial · Inglês · Técnico

sizeof

ˈsaɪz.ʌvoperador

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 4

Exemplos

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.

Veja também

Todos os termos de C++