PDA

View Full Version : [C] info istruzioni


Lelex82
23-10-2007, 13:47
int export_NULL(void** ptr_data, int* length, char** buffer)
{
*buffer=(char*) malloc(sizeof(int));
*(int*)*buffer=*(int*)*ptr_data;
*length=sizeof(int);
...

Potete spiegarmi il significato di queste istruzioni per favore?

tomminno
23-10-2007, 14:09
int export_NULL(void** ptr_data, int* length, char** buffer)
{
*buffer=(char*) malloc(sizeof(int));
*(int*)*buffer=*(int*)*ptr_data;
*length=sizeof(int);
...

Potete spiegarmi il significato di queste istruzioni per favore?

Riga 1: alloca memoria per tanti char quanti ne occupa 1 intero e assegna il puntatore al contenuto di buffer (che è un puntatore a char)
Riga 2: prende il contenuto di ptr_data (che è un puntatore a void) lo casta come puntatore ad intero, ne prende il contenuto e lo assegna a buffer tramite lo stesso procedimento di cast e dereferenziazione (mamma mia quanto è brutta questa parola in italiano!).
Riga 3: assegna al contenuto length la dimensione di un intero.