1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| #include <stdio.h> #include <unistd.h>
int main() { void* p = sbrk(0);
int* p1 = p; printf("ps addr sbrk(0): %p\n", p1);
brk(p1+4); void* s = sbrk(0); printf("ps addr on brk(p1+4): %p and size modify %d \n", s, s-p);
p1[0] = 10; p1[1] = 20; p1[2] = 30; p1[3] = 40; p1[4] = 50;
int* p2 = sbrk(4*4); s = sbrk(0); printf("ps addr on sbrk(4): %p and size modify %d \n", s, s-p); printf("*sbrk(4)=%d\n", *p2);
p1[5] = 60; p1[6] = 70; p1[7] = 80; p1[8] = 90;
int* p3 = sbrk(4*3); s = sbrk(0); printf("ps addr on sbrk(3): %p and size modify %d \n", s, s-p); printf("*sbrk(3)=%d\n", *p3);
p1[9] = 100; p1[10] = 110; p1[11] = 120;
int* p4 = sbrk(4*2); s = sbrk(0); printf("ps addr on sbrk(2): %p and size modify %d \n", s, s-p); printf("*sbrk(2)=%d\n", *p4);
brk(p1+1024); s = sbrk(0); printf("ps addr on (p1+1024): %p and size modify %d \n", s, s-p);
brk(p1+512); s = sbrk(0); printf("ps addr on (p1+512): %p and size modify %d \n", s, s-p);
brk(p1); s = sbrk(0); printf("ps addr on brk(p1): %p and size modify %d \n", s, s-p);
return 0; }
|