内存中的程序中断是什么?

时间:2018-02-11 22:03:09

标签: c sbrk brk

我正在阅读一篇文章,内容是关于为指针分配空间,而这些指针并没有准确说明程序是什么"但提到它。我需要知道程序中断了什么。如果我用malloc..ie

创建一个指向内存空间的指针
char *ptr = (char*)malloc(100);

程序是开始还是结束?它是p [0]或p [99] THX

的地址

1 个答案:

答案 0 :(得分:0)

好吧,程序中断是初始化数据段的结束,因此,它通常是其他地方

#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

int main() {
    char *ptr = (char*)malloc(100);
    printf("%p %p %p\n", ptr, ptr+100, sbrk(0));
    return 0;
}

输出:

0x744010 0x744074 0x765000

实际值取决于运行时内存分配器使用的策略(又名malloc)。