#include #include #include int main() { // malloc(30) 申请大小为 30 字节的内存空间,返回的是这块内存空间的首地址 char *p = (char *)malloc(30); strcpy(p, "hi, disen"); printf("%s, p->%p, last p->%p\n", p, p, p + 8); free(p); // free 后,变为野指针,指向的内存空间已经被释放了 // free 之后,p 指针指向的内存空间已经被释放了,但是 p 指针本身的地址没有变 p = (char *)malloc(10); memset(p, 'A', 10); printf("%s, p->%p\n", p, p); return 0; }