Articles of sizeof

Il dereferenziamento del puntatore nullo è valido in sizeof operation

Mi sono imbattuto in uno snippet di codice che per me avrebbe dovuto bloccarsi con un errore di segmentazione , eppure funziona senza intoppi. Il codice in questione e la struttura dei dati rilevanti sono i seguenti (con commento associato trovato sopra): typedef struct { double length; unsigned char nPlaced; unsigned char path[0]; } RouteDefinition* […]

In C, perché sizeof (char) 1, quando ‘a’ è un int?

Provai printf(“%d, %d\n”, sizeof(char), sizeof(‘c’)); e ottenuto 1, 4 come output. Se la dimensione di un personaggio è una, perché ‘c’ mi dai 4? Immagino sia perché è un numero intero. Quindi quando faccio char ch = ‘c’; c’è una conversione implicita che sta avvenendo, sotto il cofano, da quel valore di 4 byte ad […]

Qual è la dimensione di un puntatore?

La dimensione di un puntatore è uguale alla dimensione del puntatore a cui punta o i puntatori hanno sempre una dimensione fissa? Per esempio… int x = 10; int * xPtr = &x; char y = ‘a’; char * yPtr = &y; std::cout << sizeof(x) << "\n"; std::cout << sizeof(xPtr) << "\n"; std::cout << sizeof(y) […]

domande newbie su malloc e sizeof

Qualcuno può spiegarmi perché la mia chiamata a malloc con una stringa di 6 dimensioni restituisce una dimensione di 4 byte? In effetti, qualsiasi argomento intero che do a malloc ottengo una dimensione di 4. Successivamente, sto provando a copiare due stringhe. Perché la mia copia della stringa copiata (NULL) è mia? Di seguito è […]

Perché la dimensione di una class vuota in C ++ non è zero?

Possibile duplicato: C ++: Qual è la dimensione di un object di una class vuota? Perché il seguente output 1 ? #include class Test { }; int main() { std::cout << sizeof(Test); return 0; }

operatore sizeof () nell’istruzione if

#include main() { if (sizeof(int) > -1) printf(“True”); else printf(“False”); } Stampa False . Perché sizeof () non restituisce un valore in if ?

Come funziona questa funzione di template “size of array”?

Possibili duplicati: Qualcuno può spiegare questo codice modello che mi dà le dimensioni di un array? Argomenti magici nei modelli di funzioni … Qualcuno può spiegare come funziona questo codice? So che lo scopo di questo codice è quello di ottenere la lunghezza di un array, ma non so come funzioni questo codice: template int […]

Perché sizeof è considerato un operatore?

Perché sizeof è considerato un operatore e non una funzione? Quale proprietà è necessaria per qualificarsi come operatore?

Utilizzo di sizeof con una matrice allocata dynamicmente

gcc 4.4.1 c89 Ho il seguente frammento di codice: #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)); Tuttavia, il sizeof (buffer) stampa sempre 4. So che un char * è solo 4 byte. Tuttavia, ho assegnato la memoria […]

Perché succede questo con l’operatore sizeof quando si confronta con un numero negativo?

Cosa sta succedendo davvero qui? L’output ora è “False”: #include int main() { if (sizeof(int) > any_negative_integer) printf(“True”); else printf(“False”); return 0; } Se lo cambio a: if (sizeof(int) < any_negative_integer) l’output è “True”. Aggiornamento: la stessa domanda è già stata posta, non ho potuto trovarla prima di chiedere.