sbrk跟brk函数
sbrk和brk函数
sbrk函数
#include <stdio.h> #include <unistd.h> int main() { int *p0 = sbrk(0); // 打印堆地址 printf("this site of p0 is : %d\n", p0); int *p1 = sbrk(1000); // 这里仍然打印的是第一次的堆地址 printf("this site of p1 is : %d\n", p1); int *p2 = sbrk(1); // 打印第一次堆地址+1000后的地址 printf("this site of p2 is : %d\n", p2); // 回到初始堆地址,释放空间 sbrk(-1001); int *p3 = sbrk(0); // 检查是否回到初始地址 printf("this site of p3 is : %d\n", p3); }
brk函数
#include <stdio.h> #include <unistd.h> int main() { int *p0 = sbrk(0); printf("this site of p0 is : %d\n", p0); brk(p0 + 1000); printf("this site is : %d\n", sbrk(0)); brk(p0 + 1001); printf("this site is : %d\n", sbrk(0)); brk(p0); printf("this site is : %d\n", sbrk(0)); }