我正在阅读一篇文章,内容是关于为指针分配空间,而这些指针并没有准确说明程序是什么"但提到它。我需要知道程序中断了什么。如果我用malloc..ie
创建一个指向内存空间的指针char *ptr = (char*)malloc(100);
程序是开始还是结束?它是p [0]或p [99] THX
的地址答案 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
)。