栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言 指针 野指针

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言 指针 野指针

野指针,简单来说就是,指针指向的控件已经被释放,但是并没有让指针指向NULL;

演示代码:

#include
#include
int main() {
    int* p1, *p2, *p3; // 定义三个整型指针
    p1 = (int*)malloc(4); // 申请4字节空间,存放整型数1
    *p1 = 1;

    p2 = (int*)malloc(4);//申请4字节空间,存放整型数2
    *p2 = 2;

    free(p1);//释放原为p1申请的空间,但未将p1赋值为NULL
    p3 = (int*)malloc(4);
    *p3 = 3;

    printf("*p3=%dn",*p3);//这次打印值为3
    *p1 = 100;

    printf("*p3=%dn", *p3); // 我们并未对 * p3进行修改,但是这里打印的值为1OD
    system("pause");
}

这里修改p1的值,p3的值却被修改的原因在于:一方面,虽然释放了p1指向的空间,但是p1没有更改指向为NULL,仍然指向原空间;另一方面,使用free()释放空间时,只是将那块空间标记为可分配,并没有还会给操作系统,如果紧接着又有新的申请就会直接将这快空间给新的指针。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/857389.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号