小编Las*_*irc的帖子

在C中对数组实现一个通用的"map"函数

我在数组上实现通用的"map"函数时遇到了困难.我从以下草案开始:

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);
}
Run Code Online (Sandbox Code Playgroud)

我理解为什么它不正确 - 我会在给它'f'之前投入(char*) - 但我现在已经失去动力并且无法提出解决方案.(我在学习C的过程中这样做)

我的理由是获得'f'的结果,并逐字节地将其复制到dest [i].

你能给我一些提示吗?

c arrays function-pointers map

10
推荐指数
1
解决办法
1万
查看次数

标签 统计

arrays ×1

c ×1

function-pointers ×1

map ×1