【发布时间】:2011-12-13 05:45:45
【问题描述】:
我试图了解 C 中 malloc 和 sbrk 之间的区别以及它们之间的关系。据我了解 malloc 和 sbrk 几乎是一回事,但我读到 malloc 在分配内存时使用 sbrk。这真的很令人困惑,有人可以向我解释一下吗?
例如在这个程序中 malloc 是否调用 sbrk?如果是这样,它是否在每次调用时都简单地调用 sbrk,所以对于这个例子来说是 10 次?
int main(int argc, char **argv) {
int i;
void *start_pos, *finish_pos;
void *res[10];
start_pos = sbrk(0);
for (i = 0; i < 10; i++) {
res[i] = malloc(10);
}
finish_pos = sbrk(0);
return 0;
}
谢谢,
【问题讨论】: