Mise en œuvre d'un generical 'map', de la fonction des tableaux en C

Je vais avoir des difficultés pour mettre en œuvre un générique de 'map', de la fonction des tableaux.
J'ai commencé avec le projet:

void MapArray(void * src, void * dest, void * (f)(void *), size_t n, size_t elem)
{
   unsigned int i = 0, j = 0;
   void * temp = malloc(elem);

   for(i = 0; i<n, i++)
   {
      temp = (f)((char *) src) + i));
      for(j = 0; j < elem; j++)
      {
         *(((char *) dest) + i) = *(((char *) temp) + i);
      }
   }
   free(temp);
}

Je comprends pourquoi il n'est pas correct - je suis un casting pour (char *) avant de la donner à " f " - mais maintenant, je suis démotivé et ne peut pas venir avec une solution. (Je le fais ce dans le processus d'apprentissage C)

Mon raisonnement était d'obtenir le résultat de " f " et, octet par octet, copiez dest[i].

Pouvez vous me donner un indice?

pour ce que vous avez besoin de ce pointeur de fonction et de ce que la carte que vous souhaitez mettre en œuvre, je ne pense pas que vous voulez un peu de par exemple la carte conteneur de sig?
C'est le cas typique de "carte" de l'application, vous pouvez trouver pratiquement dans chaque langage fonctionnel. Vous envoyer une liste, une fonction et elle renvoie la liste composé comme tel: (f(l[1]), ..., f(l[n])).

OriginalL'auteur Lasirc | 2010-10-28