Sto cercando di dichiarare una struttura che dipende da un’altra struttura. Voglio usare sizeof per essere sicuro / pedante. typedef struct _parent { float calc ; char text[255] ; int used ; } parent_t ; Ora voglio dichiarare una struct child_t che ha le stesse dimensioni di parent_t.text . Come posso fare questo? (Pseudo-codice sotto.) […]
sizeof(int) mostra 4 sul mio Dev Cpp anche se è in esecuzione su una macchina a 64 bit. Perché non considera invece l’HW sottostante e lo spettacolo 8? Inoltre, se la compilazione dell’ambiente cambia anche a 64 bit (un 64 bit compiler a 64 bit compiler ha senso, in primo luogo ?!), allora la dimensione […]
Puoi giustificare il seguente codice: #include int main() { if(sizeof(int) > -1) { printf(“\nTrue\n”); } else { printf(“\nFALSE\n”); } } L’output è FALSE ….. suggeriscimi il motivo
char c[] = {‘a’,’b’,’c’}; int* p = &c[0]; printf(“%i\n”, sizeof(*p)); //Prints out 4 printf(“%i\n”, sizeof(*c)); //Prints out 1 Sono estremamente confuso su questa sezione di codice. Entrambi p e c rappresentano l’indirizzo dell’array c al 0 ° indice. Ma perché sizeof (* p) stampa 4? Non dovrebbe essere 1?
Voglio essere in grado di variare le dimensioni del mio array così ne creo uno in questo modo: int* array; array = malloc(sizeof(int)*10);//10 integer elements Posso usare questo come un array come faresti normalmente, tuttavia quando provo a trovarne la dimensione in questo modo: size = sizeof(array)/sizeof(int); Ottengo la risposta 1 perché non lo riconosce […]
#include “usefunc.h” //don’t worry about this -> lib I wrote int main() { int i; string given[4000], longest = “a”; //declared new typdef. equivalent to 2D char array given[0] = “a”; printf(“Please enter words separated by RETs…\n”); for (i = 1; i sizeof(longest)) { longest = given[i]; } */ printf(“%lu\n”, sizeof(given[i])); //this ALWAYS RETURNS EIGHT!!! […]
Possibile duplicato: differenza del puntatore allo stack per il puntatore char e l’array Per illustrare la mia domanda: int main(void){ int myary[20]; int *myaryPtr; myaryPtr = myary; sizeof(myary); // Will it return 80? Correct? sizeof(myaryPtr); // Will it return 4? Correct? return 0; } Prima di tutto, la mia ipotesi è corretta? E supponendo che […]
Ognuno degli standard C e C ++ consente che la dimensione dei tipi numerici non sia una potenza di due? I seguenti vincoli sono noti: 16 <= CHAR_BIT * sizeof(int) <= CHAR_BIT * sizeof(long) 32 <= CHAR_BIT * sizeof(long) <= CHAR_BIT * sizeof(long long) e una dozzina di altri, che su una tipica architettura a […]
Ogni programmatore C può determinare il numero di elementi in un array con questa macro nota: #define NUM_ELEMS(a) (sizeof(a)/sizeof 0[a]) Ecco un tipico caso d’uso: int numbers[] = {2, 3, 5, 7, 11, 13, 17, 19}; printf(“%lu\n”, NUM_ELEMS(numbers)); // 8, as expected Tuttavia, nulla impedisce al programmatore di passare accidentalmente un puntatore anziché un array: […]
Possibile duplicato: domande newbie su malloc e sizeof Sto cercando di leggere le stringhe in un programma. Quando ho notato che le stringhe erano a volte corrotte, ho provato il seguente codice: void *mallocated = malloc(100); printf(“sizeof(mallocated) = %d\n”, sizeof(mallocated)); Secondo il mio programma, la dimensione di mallocated era 8 , anche se ho assegnato […]