Guest User

Untitled

a guest
Jul 15th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. void * scrambleArr(void * arr, int numElem, int elemSize, int (*func)(void*)) {
  2. void * newArr;
  3. int cPos, newPos,i;
  4.  
  5. newArr = (void *)malloc(numElem*elemSize);
  6.  
  7. for (i=0 ; i < numElem ; i++)
  8. {
  9. cPos = i*elemSize;
  10. newPos = func((char*)arr+cPos);
  11. *((char*)newArr+newPos) = *((char*)arr+cPos);
  12. }
  13. return newArr;
  14. }
  15.  
  16. int posArrayBySize(void *el) {
  17. ARRAY* arr = (ARRAY *)el;
  18. return arr->size - 1;
  19. }
  20.  
  21. int main( ) {
  22. ARRAY * arrSorted;
  23. int a[2] = {1,2};
  24. int b[3] = {1,1,1};
  25. int c[1] = {9};
  26. int d[4] = {3,3,3,3};
  27. ARRAY arr[4] = {{a,2},{b,3},{c,1},{d,4}};
  28.  
  29. arrSorted =(ARRAY *)scrambleArr(arr,4,sizeof(ARRAY),posArrayBySize);
  30.  
  31. free(arrSorted);
  32. return 0;
  33. }
  34.  
  35. *((char*)newArr+newPos) = *((char*)arr+cPos);
Add Comment
Please, Sign In to add comment