当前位置: 首页 > news >正文

用什么来网站开发好湛江专业网站制作

用什么来网站开发好,湛江专业网站制作,分析网站的优势和不足,线下教育机构一、什么是野指针 野指针: 是指向无效或未定义内存地址的指针,其值通常是随机的、不确定的,可能指向已被释放的内存、未初始化的区域或非法地址 。与空指针(NULL)不同,野指针本身并不是NULL,而…

一、什么是野指针

野指针:

         是指向无效或未定义内存地址的指针,其值通常是随机的、不确定的,可能指向已被释放的内存、未初始化的区域或非法地址
。与空指针(NULL)不同,野指针本身并不是NULL,而是指向无法正常访问的内存空间,操作野指针可能导致程序崩溃或数据损坏

二、野指针与空指针的区别

特征               野指针                                              空指针(NULL)
​定义​          指向无效或随机地址的指针                  显式赋值为NULL的指针
​安全性​      危险,可能导致崩溃或错误                  安全,解引用会明确报错
​成因​          未初始化、释放后未置空等                  开发者主动赋值NULL
​处理方式​      需通过初始化或置空规避                  可通过条件判断避免误用

三、代码示例

#include <stdio.h>
#include <stdlib.h>/*
1.返回局部变量的地址:函数返回局部变量的地址时,局部变量生命周期结束后内存会被回收
int* test() {int n = 100;return &n; // 返回局部变量地址
}
int* p = test(); // p成为野指针
改正:改用动态内存分配或静态变量:
*/
int* getIntPointer(int value) {static int* size = NULL;int* ptr = malloc(sizeof(int));if (ptr == NULL) {fprintf(stderr, "Memory allocation failed\n");return NULL;}*ptr = value;return ptr,size;
}int main()
{//野指针的成因// 2.指针未初始化:此时p指向未知区域,解引用可能导致段错误//int* p;  // 未初始化,p为野指针//*p = 10; // 非法访问随机地址// 改正:1、未明确指向时初始化为NULL//      2、显式赋值有效地址:int *p = &valid_varint* p = NULL;// 3.​指针指向已释放的内存//int* p = (int*)malloc(sizeof(int));//free(p);  // 释放内存//*p = 20;  // p仍指向已释放的地址,成为野指针// 改正:释放内存后置空指针int* p2 = (int*)malloc(sizeof(int));if (p2==NULL) {printf("内存分配失败\n");return -1;}else {printf("内存分配成功\n");*p2 = 20;  // 正确访问已分配的内存p2 = NULL; // 释放后置空}//​ 4.指针越界访问:访问超出数组范围的地址时,指针指向非法内存://int arr[10] = {0};//int* p = arr;//for (int i = 0; i <= 11; i++) {//    *(p++) = i; // 越界后p成为野指针//}// 改正int arr[10] = {0};int* arr_p = arr;for (int i = 0; i <= 11; i++) {*(arr_p++) = i; // 越界后p成为野指针}return 0;
}

四、野指针的成因及预防方法

1,成因:返回局部变量的地址:函数返回局部变量的地址时,局部变量生命周期结束后内存会被回收

      预防:改用动态内存分配或静态变量

2, 成因:指针未初始化:此时p指向未知区域,解引用可能导致段错误

      预防:

              a、未明确指向时初始化为NULL
              b、显式赋值有效地址:int *p = &valid_var

3,成因:指针指向已释放的内存

      预防: 释放内存后置空指针

4, 成因:指针越界访问:访问超出数组范围的地址时,指针指向非法内存

      预防:数组遍历是声明合适大小的的循环变量

http://www.dtcms.com/a/498519.html

相关文章:

  • 网站建设如何缴纳印花税局域网wordpress建站
  • 生活信息网站建设百度seo推广首选帝搜软件
  • 企业建设网站是网络营销吗如何学建设网站首页
  • 做网站产品图片素材中国建设部网站能查叉车证
  • 南京500元做网站怎么把自己做的网站放到百度上
  • 白云怎样优化网站建设天猫交易购买平台
  • 顺德做网站那家好开发区人才
  • 山东seo网站推广网站标题改了
  • 网站制作好吗wordpress 绑定手机版
  • 上海网站排名优化价格饭店的网站建设进行评价
  • wordpress如何搬站赣州经开区最新规划图
  • 美团网站开发费用天润网站建设
  • 查看网站建设时间电商网站运营步骤
  • 有什么网站可以做试题保护环境网页设计教程
  • 附近网站建设服务公司企业建设网站网站建设公司
  • 长沙建站智能模板海外购物电商平台
  • 建电子商务网站多少钱微信营销案例100例
  • 西安做网站的公司电话国内的跨境电商平台有哪些
  • 网站建设新的开始北京网页设计公司
  • 空间设计网站南城网站建设公司案例
  • 世界上做的最好的前端网站企业网站建立策划书
  • 做网站如何适应分辨率中企动力青岛分公司
  • 外国建设小网站赚钱app定制网站建设应有尽有
  • 免费的企业黄页网站永久免费网站建设xiu021
  • 网站开发需求 模板seo技术外包 乐云践新专家
  • 如何利用国外分类网站开发客户呼市网站开发
  • 网站主机名是什么邢台交友吧
  • 房地产网站建设方案标志设计分析
  • 阿里云主机怎么做两个网站网站注册怎么做
  • 祁县网站建设凌云县城乡建设局网站