#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> //野指针产生的原因 //指针变量和它所指的内存空间变量是两个不同的概念 //释放了指针所指的内存空间,但是指针本身没有重置成null //造成释放的时候 通过if(p1!=NULL) //避免方法:1)定义指针的时候,初始化成NULL。2)释放指针所指向的内存空间后,把指针重置成NULL。 int main() { char *p1 = NULL; p1 = (char*)malloc(100); if (p1 == NULL) { return; } strcpy(p1, "12121212"); printf("p:%s ", p1); if (p1 != NULL) { free(p1); p1 = NULL; } if (p1 != NULL) { free(p1); } system("pause"); return 0; }