Probleme de pointeur générique
Bonjour,
j'ai un probleme de pointeur générique (je debute dans les pointeurs génériques et je maitrise pas encore entierement les pointeurs) , je m'explique :
soit un pointeur de type
Code:
void * write_buffer = NULL;
je le fais pointer sur l'adresse de data qui est un entier :
Code:
write_buffer = data;
je passe en parametre le pointeur write_buffer dans une fonction :
Code:
block_list_write_buffer(head,write_buffer,size);
a l'interieur de cette fonction j'ai une ligne qui me retourne un pointeur de type void * , je voudrais que ce pointeur pointe sur l'adresse de la donnée initiale data donc, write_buffer donc.
ci joins le code de cette fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| int
block_list_write_buffer( struct block_list_head * head, void * buffer, unsigned int size )
{
fprintf(stdout,"\n\n-- Write --");
if (check(head != NULL, "Argument head is NULL")&&
check(buffer != NULL, "Argument buffer is NULL")&&
check(size != 0, "Argument size = 0"))
{
void * ptr_data = NULL;
unsigned int free_size = 0;
ptr_data = block_list_write_begin(head,&free_size);
fprintf(stdout,"\n Free Size = %d",free_size);
if (size <= free_size)
{
fprintf(stdout,"\nP ptr_data : %p",ptr_data); // affiche adresse X
ptr_data = buffer;
fprintf(stdout,"\n ptr_data : %d",ptr_data); // Affiche la valeur Data
fprintf(stdout,"\nP ptr_data : %p",ptr_data); // Affiche une valeur Y !! (d'ou le probleme)
block_list_write_end(head,size);
return 0;
}
return -1;
}
return -1;
} |
le probleme est que ptr_data contiens bien la valeur data mais son adresse change !
je bloque la dessus est ce qu'une ame charitable pourrais m'aider ? :(
merci d'avance !