Oppure

Loading
17/09/08 15:28
norbix
la mia semplice domanda è.. perchè trovo sempre sizeof(char) quando leggo dei sorgenti con allocazione dinamica della memoria? ad esempio, uno che ho sotto mano..

 // allocate memory to contain the whole file:
  buffer = (char*) malloc (sizeof(char)*lSize);
  if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);}


non è evidente che la dimensione in byte che occupa una variabile di tipo char è sempre pari ad 1? perchè allora usare sempre la funzione sizeof() per farsi ritornare sempre il solito valore?
aaa
17/09/08 15:43
Bond93
E' "evidente" per la tua architettura.. potrebbe esserci un altro processore che magari usa diversamente i vari tipi... quindi visto che dobbiamo creare sorgenti portabili e soprattutto leggibili è sempre conveniente usarlo poichè migliora la chiarezza del sorgente e lo rende compatibile con qualsiasi architettura e OS, senza dimenticare che semplifica di molto allocazioni di strutture complesse ecc...:k:
aaa