您好,请问free()函数释放指针之后,为什么还能输出指针指向的内容?

输出的数据,和指针被释放之前,一模一样,为什么



UYOU
浏览 404回答 2
2回答

慕莱坞森

因为释放指针,只是将指针所指的内存空间交还给系统,而指针变量的内容(即刚释放的内存地址)并为改变,所以还能输出。但此时的指针一般称之为“野指针”,是很危险的。所以,一般要求释放指针后,紧接着将其置为空:free(p);p=NULL;

慕田峪9158850

你编译器的问题吧,我这里 printf("p=%s\n",p) ; 没有输出的。// 不用对 malloc 返回的指针强制转换?char *p = (char*)malloc(100);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
Python