堆区(heap)
// 堆区由程序员通过malloc和free申请内存和释放
// 指针p1离开作用域之后, 这个指针本身就死亡了, 但是指针所指的那块空间还在, 所以要记得free
// 否则就是内存泄漏
int main(){
int* p1=(int*)malloc(4);// p1自己是在栈区,指向一块堆区空间
free(p1);// 谁申请,谁释放
}
// 堆区按内存地址由低到高方向生长,其大小由系统内存/虚拟内存上限决定
// #include<stdlib.h>
// 包含calloc,free,malloc,realloc,reallocf,valloc
// malloc以字节为单位申请空间,返回void*