连续两个sbrk(0)调用返回不同的结果

时间:2019-01-31 15:11:35

标签: c

我刚刚发现了sbrk(0)调用的有趣行为。如果在程序开始时我先调用sbrk(0),然后再调用另一个sbrk(0),则它将返回不同的程序中断。所有后续调用均返回相同的地址。

...
printf("[1] program break at: %10p\n", sbrk(0));
printf("[2] program break at: %10p\n", sbrk(0));
printf("[3] program break at: %10p\n", sbrk(0));
...

结果:

[1] program break at:  0x1563000
[2] program break at:  0x1584000
[3] program break at:  0x1584000

奇怪的是,程序中断不应在sbrk(0)更改

有人可以解释我发生了什么事吗?

0 个答案:

没有答案