[C] cast d'un void*

cast d'un void* [C] - C - Programmation

Marsh Posté le 16-10-2003 à 19:56:45    

Hello,
 
Pour résumer mon problème, voici la situation.
J'ai à ma disposition une zone de mémoire de type void* et je souhaiterais intérpréter une partie de cette zone (assez grande) comme un char par exemple. Voici comme je m'y prends :
 

Code :
  1. //...
  2. void* MRP = NULL ;
  3. MRP = mmap( ....
  4. //...
  5. char * tmp =  (char*) MRP ;
  6. printf("Tentative d'acces a la memoire / Contenu : %c\n", *tmp ) ;
  7. ( (char*) MRP )++ ; // ligne 78
  8. //...


 
Ca compile, mais j'ai un warning :
 


78: warning: ISO C forbids use of cast expressions as lvalues

 
 
Je m'y prends apparement de la mauvaise facon. Comment faire ce que je souhaite proprement ?  
 
Merci, @+


Message édité par Evadream -jbd- le 16-10-2003 à 20:01:45
Reply

Marsh Posté le 16-10-2003 à 19:56:45   

Reply

Marsh Posté le 16-10-2003 à 20:03:08    

1) les convertions void*<->truc* sont implicites en C
2) le message est exlicite il me semble.
 
  void *f = &truc;
  f = ((char*)f)+1;

Reply

Marsh Posté le 16-10-2003 à 20:09:33    

1) Ok merci.
2) Chuis con.
 
Merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed