的地址
我正在阅读阅读一篇文章,谈论将空间分配给指针的空间,而这些指针不准确地说了程序中断了什么。我创建一个用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
(。