Type de données indéfini

Type de données indéfini - C - Programmation

Marsh Posté le 24-01-2004 à 21:47:50    

Bonsoir à tous
 
j'ai une fonction

Code :
  1. void update_tbl_symb(int place, void *valeur)


censée mettre à jour une valeur dans un tableau mais le problème c'est que cette valeur peut être de différents types
 
Ma première intuition c'est d'utiliser un void mais le compilo il aime pas. Réflexe K&R : pas de solution qui m'aille :'(
void * compile mais ça me semble pas propre...
 
Une suggestion ?? Une idée ?? Un jet de caillou ??
 
Merci,
 
Nico.

Reply

Marsh Posté le 24-01-2004 à 21:47:50   

Reply

Marsh Posté le 24-01-2004 à 21:57:08    

soit plus précis
 
inspire toi de qsort, mem*, bsearch, etc

Reply

Marsh Posté le 24-01-2004 à 22:00:13    

j'avais pas pensé à regarder le man de qsort :/ cette solution semble être la bonne :)
 
merci taz

Reply

Marsh Posté le 24-01-2004 à 22:14:06    

exemple rapide C99
 

Code :
  1. #include <string.h>
  2. inline void swap(void * restrict const a,
  3.   void * restrict const b,
  4.   const size_t size)
  5. {
  6.   char buffer[size];
  7.   memcpy(buffer, a, size);
  8.   memcpy(a, b, size);
  9.   memcpy(b, buffer, size);
  10. }
  11. void reverse(void * const t, const size_t nmemb, const size_t size)
  12. {
  13.   char * const p = t;
  14.   for(size_t i=0; i < nmemb/2; ++i)
  15.     {
  16.       swap(p + i*size, p + (nmemb-i-1)*size, size);
  17.     }
  18. }
  19. #include <stdio.h>
  20. int main()
  21. {
  22.   char taz[] = "TazForEver";
  23.   puts(taz);
  24.   reverse(taz, sizeof taz - 1, 1);
  25.   puts(taz);
  26. }

Reply

Sujets relatifs:

Leave a Replay

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