#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char *p; //野指针
p = (char *)malloc(1); //开辟内存给p有了具体的内存指向
*p ='c';
free(p); //释放p空间。
p=(char *)malloc(12);
if(p == NULL)
{
printf("malloc error\n");
exit(-1);
}
memset(p,'\0',12); //将前面p中扩容的12个字节内存,全部清0。
printf("扩容地址:%x\n",p);
int len =strlen("qianeushi111111111111111");
int newlen = len-12+1;
realloc(p,newlen); // 在p的基础上给扩容newlen的大小。此时地址不变
strcpy(p,"qianeushi111111111111111"); //拷贝,将后面的内容拷贝到前面
puts(p);
puts("end");
return 0;
}