小编Ale*_*lex的帖子

C:复制数组而不知道其类型

我有函数,它接收指向数组的指针和指向函数的指针,并应返回由参数传递的函数定义的新数组.我的问题是如何将一个数组的元素复制到另一个数组而不知道它的类型

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)

c arrays void-pointers

0
推荐指数
1
解决办法
1298
查看次数

标签 统计

arrays ×1

c ×1

void-pointers ×1