Advertisement
Guest User

Untitled

a guest
Jul 5th, 2015
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <time.h>
  5.  
  6. int reverse(void * array, const size_t offset, const size_t length, const size_t size) {
  7. void * temp = malloc(size);
  8. if (temp == NULL) {
  9. return EXIT_FAILURE;
  10. }
  11. size_t s = (offset + 0) * size; // start
  12. size_t e = (length - 1) * size; // end
  13. while (s < e) {
  14. //const int halp = length / 2;
  15. //for (int i = 0; i < halp; i++) {
  16. memcpy(temp, ((char *) array) + s, size);
  17. memcpy((char *) array + s, (char *) array + e, size);
  18. memcpy((char *) array + e, temp, size);
  19. s += size;
  20. e -= size;
  21. }
  22. free(temp);
  23. return EXIT_SUCCESS;
  24. }
  25.  
  26. void print(int * array, size_t length) {
  27. for (int i = 0; i < length; i++) {
  28. printf("array[%d]: %d\n", i, array[i]);
  29. }
  30. }
  31.  
  32. int main(int argc, char * argv[]) {
  33. const int length = 10;
  34. int * array = (int *) calloc(length, sizeof(int));
  35. for (int i = 0; i < length; i++) {
  36. array[i] = i;
  37. }
  38. print(array, length);
  39. printf("---------------------------------------\n");
  40. if (reverse(array, 0, length, sizeof(int)) == EXIT_FAILURE) {
  41. return EXIT_FAILURE;
  42. }
  43. print(array, length);
  44. return EXIT_SUCCESS;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement