У меня возникают трудности с реализацией общей функции "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);
}
Я понимаю, почему это неверно. Я передаю его (char *) перед тем, как дать ему "f", но теперь я демонизирован и не могу найти решение. (Я делаю это в процессе обучения C)
Мое обоснование заключалось в том, чтобы получить результат "f" и, байт за байт, скопировать его в dest [i].
Можете ли вы дать мне подсказку?