Guest User

Untitled

a guest
Jun 22nd, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. #define MAX 128
  5. void *mp[MAX][MAX];
  6. long min = ~0ul >> 1, max = ~0ul,avg = 0l,cnt = 0l;
  7.  
  8. int main(void)
  9. {
  10. int i,j,k;
  11. union {
  12. long addr;
  13. void *ptr;
  14. } v;
  15.  
  16. for (i = 0; i < MAX; ++i)
  17. for (j = 0; j < MAX; ++j)
  18. mp[i][j] = malloc(i);
  19. v.addr = 0;
  20. for (i = 0; i < MAX; ++i)
  21. for (j = 0; j < MAX; ++j) {
  22. v.ptr = mp[i][j];
  23. if (!v.ptr)
  24. continue;
  25. for (k = 1; !(k & v.addr); k <<= 1)
  26. ;
  27. min = k < min ? k : min;
  28. max = k > max ? k : max;
  29. avg += k;
  30. cnt += 1;
  31. free(v.ptr);
  32. }
  33. printf("malloc() alignment (min/avg/max) = %ld/%.1f/%ld\n",min,avg/1.0/cnt,max);
  34. printf("malloc() returned a NULL pointer = %ld times\n",MAX*MAX-cnt);
  35. return 0;
  36. }
Add Comment
Please, Sign In to add comment