C-记忆中的程序中断是什么



我正在阅读阅读一篇文章,谈论将空间分配给指针的空间,而这些指针不准确地说了程序中断了什么。我创建一个用malloc ..ie

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

程序打破了开始还是结束?是p [0]还是p [99] THX

的地址

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

#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int main() {
    char *ptr = (char*)malloc(100);
    printf("%p %p %pn", ptr, ptr+100, sbrk(0));
    return 0;
}

输出:

0x744010 0x744074 0x765000

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

相关内容

  • 没有找到相关文章

最新更新