monelli
08-04-2010, 13:10
Allora io dichiaro una variabile buffer
char buffer[100];
Una funzione è così definita bool FAI(char *dati)
Ovviamente se faccio FAI(buffer) da errore in compilazione... ma è corretto fare un cast così FAI( (char*) buffer) in questo modo compila...
Mi spiegate ciò? grazie...
In pratica con char buffer[100] alloco la memoria,
mentre dichiarando char *buffer; non alloco la memoria creo solo un puntatore:
se poi vado ad utilizzare la memcpy nel primo caso funziona nel secondo caso scrivo in pezzi di memoria non allocata e quindi si può piantare giusto??????
char buffer[100];
Una funzione è così definita bool FAI(char *dati)
Ovviamente se faccio FAI(buffer) da errore in compilazione... ma è corretto fare un cast così FAI( (char*) buffer) in questo modo compila...
Mi spiegate ciò? grazie...
In pratica con char buffer[100] alloco la memoria,
mentre dichiarando char *buffer; non alloco la memoria creo solo un puntatore:
se poi vado ad utilizzare la memcpy nel primo caso funziona nel secondo caso scrivo in pezzi di memoria non allocata e quindi si può piantare giusto??????