Articles of sizeof

tamanho de uma união em C / C ++

Qual é o tamanho da união em C / C ++? É o tamanho do maior tipo de dados dentro dele? Em caso afirmativo, como o compilador calcula como mover o ponteiro da pilha se um dos tipos de dados menores da união estiver ativo?

Qual é o tamanho de um ponteiro?

O tamanho de um ponteiro é igual ao tamanho do tipo para o qual ele está apontando ou os pointers sempre têm um tamanho fixo? Por exemplo… int x = 10; int * xPtr = &x; char y = ‘a’; char * yPtr = &y; std::cout << sizeof(x) << "\n"; std::cout << sizeof(xPtr) << "\n"; […]

perguntas novato sobre malloc e sizeof

Alguém pode me explicar por que minha chamada para malloc com um tamanho de string de 6 retorna um tamanho de 4 bytes? Na verdade, qualquer argumento inteiro que eu dou malloc eu recebo um sizeof de 4. Em seguida, eu estou tentando copiar duas seqüências de caracteres. Por que minha saída da string copiada […]

Verificando o tamanho de um object no Objective-C

Eu estou tentando encontrar o tamanho de um object object-c. Estou usando algo parecido com: NSLog(@”sizeof myObject: %ld”, sizeof(*myObject)); Isso só me dá o tamanho do ponteiro embora. O que estou fazendo de errado?

Como funciona essa function de modelo “tamanho de matriz”?

Duplicatas possíveis: Alguém pode explicar esse código de modelo que me dá o tamanho de uma matriz? Argumentos mágicos em modelos de function … Alguém pode explicar como esse código funciona? Eu sei que o objective deste código é obter o tamanho de um array, mas não sei como esse código funciona: template int GetArrLength(T(&)[size]){return […]

operador sizeof () em if-statement

#include main() { if (sizeof(int) > -1) printf(“True”); else printf(“False”); } Imprime False . Por que o sizeof () não retorna um valor no if ?

Usando sizeof com um array dinamicamente alocado

gcc 4.4.1 c89 Eu tenho o seguinte trecho de código: #include #include char *buffer = malloc(10240); /* Check for memory error */ if(!buffer) { fprintf(stderr, “Memory error\n”); return 1; } printf(“sizeof(buffer) [ %d ]\n”, sizeof(buffer)); No entanto, o sizeof (buffer) sempre imprime 4. Eu sei que um char * é de apenas 4 bytes. No […]

O tamanho de (bool) é definido?

Não consigo encontrar uma resposta na documentação padrão. É sizeof(bool) sempre 1 byte ou a implementação está definida?

O que significa o ‘nome da matriz’ no caso de uma matriz de pointers de caracteres?

No meu código: char *str[] = {“forgs”, “do”, “not”, “die”}; printf(“%d %d”, sizeof(str), sizeof(str[0])); Estou recebendo o resultado como 12 2 , então minhas dúvidas são: Por que há uma diferença? str e str[0] são pointers, certo?

Existem plataformas onde os pointers para diferentes tipos têm tamanhos diferentes?

O padrão C permite que pointers para tipos diferentes tenham tamanhos diferentes, por exemplo, sizeof(char*) != sizeof(int*) é permitido. No entanto, ele exige que, se um ponteiro for convertido em um void* e, em seguida, convertido de volta para seu tipo original, ele deve ser comparado como igual ao seu valor original. Portanto, segue logicamente […]