#include
int brk (void *end);
void * sbrk (intptr_t increment);
堆中动态存储器的分配由数据段的底部向上生长;栈从数据段的顶部向着堆往下生长。堆和栈的分界线叫做中断或中断点。
调用brk()会设置中断点(数据段的末端)的地址为end。在成功时,返回0;失败的时候,返回-1,并设置errno为ENOMEM。
调用sbrk()将数据段末端增加increment字节,increment可正可负。sbrk()返回修改后的断点。所以,increment为0时得到的是现在短点的地址:
printf(”The current break point is %p\n”,sbrk(0));
sbrk(0)得到当前堆的首地址。