Articles of sizeof

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.

Che cosa significa il “nome dell’array” nel caso di una matrice di puntatori di caratteri?

Nel mio codice: char *str[] = {“forgs”, “do”, “not”, “die”}; printf(“%d %d”, sizeof(str), sizeof(str[0])); Sto ottenendo l’output come 12 2 , quindi i miei dubbi sono: Perché c’è una differenza? Sia str e str[0] sono puntatori di caratteri, giusto?

È definito sizeof (bool)?

Non riesco a trovare una risposta nella documentazione standard. sizeof(bool) sempre a 1 byte o è stata definita l’implementazione?