我在数组上实现通用的"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].
你能给我一些提示吗?