猿问
您好,请问free()函数释放指针之后,为什么还能输出指针指向的内容?
输出的数据,和指针被释放之前,一模一样,为什么
UYOU
浏览 404
回答 2
2回答
慕莱坞森
因为释放指针,只是将指针所指的内存空间交还给系统,而指针变量的内容(即刚释放的内存地址)并为改变,所以还能输出。但此时的指针一般称之为“野指针”,是很危险的。所以,一般要求释放指针后,紧接着将其置为空:free(p);p=NULL;
0
0
0
慕田峪9158850
你编译器的问题吧,我这里 printf("p=%s\n",p) ; 没有输出的。// 不用对 malloc 返回的指针强制转换?char *p = (char*)malloc(100);
0
0
0
随时随地看视频
慕课网APP
相关分类
Java
Python
我要回答