18 lines
588 B
C
18 lines
588 B
C
|
#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;
|
|||
|
}
|