Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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;
- }
- int posArrayBySize(void *el) {
- ARRAY* arr = (ARRAY *)el;
- return arr->size - 1;
- }
- int main( ) {
- ARRAY * arrSorted;
- int a[2] = {1,2};
- int b[3] = {1,1,1};
- int c[1] = {9};
- int d[4] = {3,3,3,3};
- ARRAY arr[4] = {{a,2},{b,3},{c,1},{d,4}};
- arrSorted =(ARRAY *)scrambleArr(arr,4,sizeof(ARRAY),posArrayBySize);
- free(arrSorted);
- return 0;
- }
- *((char*)newArr+newPos) = *((char*)arr+cPos);
Add Comment
Please, Sign In to add comment