Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- int reverse(void * array, const size_t offset, const size_t length, const size_t size) {
- void * temp = malloc(size);
- if (temp == NULL) {
- return EXIT_FAILURE;
- }
- size_t s = (offset + 0) * size; // start
- size_t e = (length - 1) * size; // end
- while (s < e) {
- //const int halp = length / 2;
- //for (int i = 0; i < halp; i++) {
- memcpy(temp, ((char *) array) + s, size);
- memcpy((char *) array + s, (char *) array + e, size);
- memcpy((char *) array + e, temp, size);
- s += size;
- e -= size;
- }
- free(temp);
- return EXIT_SUCCESS;
- }
- void print(int * array, size_t length) {
- for (int i = 0; i < length; i++) {
- printf("array[%d]: %d\n", i, array[i]);
- }
- }
- int main(int argc, char * argv[]) {
- const int length = 10;
- int * array = (int *) calloc(length, sizeof(int));
- for (int i = 0; i < length; i++) {
- array[i] = i;
- }
- print(array, length);
- printf("---------------------------------------\n");
- if (reverse(array, 0, length, sizeof(int)) == EXIT_FAILURE) {
- return EXIT_FAILURE;
- }
- print(array, length);
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement