#include
#include
#include
int main()
{
char *p;//野指针(没有指向内存地址)
p = (char *)malloc(1);//malloc 创造了1字节并返回给p
*p = 'c';
puts(p);
free(p);//动态开辟后重新指向,释放p,防止出现内存泄露
p = NULL;//空指针指向NULL,防止悬挂指针(野指针)出现;
p =(char *)malloc(12);//前面释放重新创造;
if(p==NULL){ //判断p是否出现指针悬挂
printf("malloc 错误");
exit(-1);
}
memset(p,','12);//内存空间初始化printf
("扩容地址:%x\n,p");int
= len strlen("huihfihihfofhowhfiow1322323213223");int
= newlen - len 12 + 1 ;=
p realloc (,p)newlen;//扩容p为原大小,newlen为扩容后大小;printf
("扩容后地址:%x\n,p");strcpy
(,p"huihfihihfofhowhfiow1322323213223");//拷贝puts
()p;puts
("结束");return
0 ;}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)