我有函数,它接收指向数组的指针和指向函数的指针,并应返回由参数传递的函数定义的新数组.我的问题是如何将一个数组的元素复制到另一个数组而不知道它的类型
void * scrambleArr(void * arr, int numElem, int elemSize, int (*func)(void*)) {
void * newArr;
int cPos, newPos,i;
newArr = (void *)malloc(numElem*elemSize);
for (i=0 ; i < numElem ; i++)
{
cPos = i*elemSize;
newPos = func((char*)arr+cPos);
*((char*)newArr+newPos) = *((char*)arr+cPos);
}
return newArr;
}
Run Code Online (Sandbox Code Playgroud)
传入最后一个参数的函数
int posArrayBySize(void *el) {
ARRAY* arr = (ARRAY *)el;
return arr->size - 1;
}
Run Code Online (Sandbox Code Playgroud)
主要代码:
int main( ) {
ARRAY * arrSorted;
int a[2] = {1,2};
int b[3] = {1,1,1};
int c[1] = {9}; …Run Code Online (Sandbox Code Playgroud)