C语言 野指针

系统给程序分配的内存是 虚拟出来的 连续性内存 (由内存分页功能实现);
分页功能 是把 没被占用的 不连续的内存 虚拟成连续后 重新安上编号(也就是地址)再给程序用; 那么野指针在这上面乱指怎么会危害到系统 或其他程序

意思是说未初始化的指针看似没指向任何地方,但是其实默认了是指向某个未知地点的,这个地点可能是系统的某个重要的代码,所以一旦对这个无知指针的某个行为改动了它所指向的系统代码,那系统就会出现问题,至于出现什么问题就难说了。再说老师说这番话是出于程序员的严谨,因为要是以后在一个常用程序里加入这种危害性的代码,那每次运行可能都会让系统承担一次风险,但是事实上出问题的几率其实是满低得。
老师这番话是为了让学生们养成严谨,无错漏的编程习惯。 而不是什么危言耸听。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-22
char *p = (char *)malloc(10);free(p);你开辟空间,然后释放,这时释放的是开辟的内存空间,而就本身的p而言,它还是指向那片内存的,这是你用p,编译程序的时候不会出错,但是一运行,程序就会出错,这里的p就是野指针,为了杜绝野指针,可以在free(p);下面加上p = NULL;就行了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网