Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <time.h>
- #include <stdlib.h>
- #include <stdio.h>
- int f1(unsigned size)
- {
- double *x = malloc(size * sizeof(double));
- int *y = malloc(size * sizeof(int));
- double *res = malloc(size * sizeof(double));
- for(unsigned i = 0; i < size; ++i)
- {
- x[i] = y[i] = i;
- res[i] = x[i] + y[i];
- }
- free(x);
- free(y);
- free(res);
- return EXIT_SUCCESS;
- }
- int f2(unsigned size, void *memory)
- {
- double *x = (double*)memory;
- int *y = (int*)memory + size;
- double *res = (double*)memory + 2*size;
- for(unsigned i = 0; i < size; ++i)
- {
- x[i] = y[i] = i;
- res[i] = x[i] + y[i];
- }
- return EXIT_SUCCESS;
- }
- int main()
- {
- unsigned size = 10, repeat = 10;
- void *memory = malloc(2*size*sizeof(double) + size*sizeof(int));
- clock_t beg, end;
- for(unsigned i = 0; i < 10; ++i)
- {
- beg = clock();
- for(unsigned i = 0; i < repeat; ++i)
- f1(size);
- end = clock();
- printf("%f\t", (double)(end - beg) / CLOCKS_PER_SEC);
- beg = clock();
- for(unsigned i = 0; i < repeat; ++i)
- f2(size, memory);
- end = clock();
- printf("%f\n", (double)(end - beg) / CLOCKS_PER_SEC);
- }
- }
- /**** Error in `main': malloc(): memory corruption (fast): 0x00000000013470e0 ****/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement