【C语言提高11】野指针

来源:互联网 发布:mac os回到桌面 编辑:程序博客网 时间:2024/06/08 04:04
//野指针产生的原因
//指针变量和它所指向的内存空间是两个不同的概念
//释放了指针变量所指的内存空间  但指针变量没有重置为null
//做成释放后  if(p!=NULL)仍然成立      因为指针变量还存着所指向内存空间的地址  但是这块内存被释放了

//避免办法:
// 1)初始化的时候 初始为NULL
// 2)释放指针所指的内存空间后  紧接着把指针重置为null

<span style="color:#333333;">#include<stdlib.h>#include<stdio.h>#include<string.h>void main(){char* p1 = NULL;p1 = (char*)malloc(100);if (p1 == NULL){return;}strcpy_s(p1,20,"23555");printf("p1: %s\n",p1);if (p1 != NULL){free(p1);}system("pause");}</span>

0 0
原创粉丝点击