qfedu-c-level/day10/d14.c

18 lines
588 B
C
Raw Normal View History

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
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;
}