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

微信 host 微网站模版安徽省建设厅证件查询安全员c证

微信 host 微网站模版,安徽省建设厅证件查询安全员c证,网络推广最新技巧,专做情侣装网站什么是野指针#xff1f; 指针变量存的地址是一块非法内存地址。进而形成野指针。但是需要注意一点#xff0c;野指针不是NULL指针。 文章目录1 野指针的概念1.1 野指针代码案例初探2 如何避免野指针2.1 野指针代码案例分析进阶3 总结1 野指针的概念 野指针变量中的值是非法… 什么是野指针 指针变量存的地址是一块非法内存地址。进而形成野指针。但是需要注意一点野指针不是NULL指针。 文章目录1 野指针的概念1.1 野指针代码案例初探2 如何避免野指针2.1 野指针代码案例分析进阶3 总结 1 野指针的概念 野指针变量中的值是非法内存地址进而形成野指针野指针不是NULL指针是指向不可用内存的地址的指针NULL指针并无危害很好判断也很好调试C语言的语言层面无法判断一个指针所保存的地址是否是合法的。 那么野指针是如何产生的呢 以下在代码中的编程不规范会导致野指针的产生 局部指针变量没有被初始化我们知道局部变量不初始化就是随机值所以如果局部指针被赋为随机值那么这个随机值所代表的地址很有可能是不能访问的是非法的地址。那么它就是野指针指针所指向的变量在指针被使用之前被销毁。比如在函数的返回值是指针。在函数返回后函数的调用栈就被销毁了接着使用被返回的指针时这个指针所指向的内存已经被销毁所以形成野指针free指针后还依然使用指针这也是野指针进行了错误的指针运算和错误的强制类型转换后面代码案例会分析 1.1 野指针代码案例初探 代码41-1.c #include stdio.h #include malloc.hint main() {int* p1 (int*)malloc(40);int* p2 (int*)1234567;int i 0;for(i0; i40; i){*(p1 i) 40 - i;}free(p1); for(i0; i40; i){p1[i] p2[i];}return 0; }使用gcc4.4.5编译器编译上述代码上述代码编译没有问题运行会出现段错误。如果使用较新版本的编译器可能编译都会直接报错。分析错误原因 段错误一般就是野指针问题 首先第8行将1234567强制转换为int*指针变量并赋值给p2。然后在第29行使用p2。1234567这个地址肯定是不能访问的。所以p2就是野指针。所以运行时访问p2指针指向的内存就会产生段错误16行已经将指针p1的内存释放。但是在20行又使用p1.这也是野指针会造成段错误第13行中因为p1在第7行只申请了40字节也就是10个int的内存。所以13行使用p1加了40次肯定会越界访问了本不是p1申请的内存。这也会造成段错误 2 如何避免野指针 遵循以下几条规则避免野指针的产生 绝不在函数中返回局部指针变量或者局部数组任何变量在定义后必须先初始化字符数组必须确认最后一个元素是‘\0’结束符才能将该数组当成是字符串否则不能将其当成字符串。因为字符串的所有操作都是基于最后的’\0’结束符如果没有这个结束符很有可能在操作字符串的时候产生内存越界任何使用与内存操作相关的函数必须指定长度信息。在C语言中长度信息很重要它往往是变量类型的一部分。如数组。如下图 2.1 野指针代码案例分析进阶 代码41-2.c #include stdio.h #include string.h #include malloc.hstruct Student {char* name; //这里有指针很容易忘记初始化int number; };char* func() {char p[] D.T.Software;return p; //返回局部数组/指针gcc4.4.5编译器会编译警告 }void del(char* p) {printf(%s\n, p);free(p); //free之后要将p置NULL }int main() {struct Student s; //s中有指针变量这里没有初始化容易产生野指针char* p func(); // 返回的指针指向的内存已经被销毁strcpy(s.name, p); //p指向的内存已经被销毁不能使用且s中的name指针没有初始化也会产生野指针s.number 99;p (char*)malloc(5);strcpy(p, D.T.Software); //内存越界del(p);return 0; }上述代码编译就会产生警告。警告第15行返回局部指针。程序运行产生段错误其他的会产生野指针的地方在代码中已经详细的说明。自己分析即可。 3 总结 知道野指针的由来以及如何避免产生野指针。这是非常重要的
http://www.pierceye.com/news/355123/

相关文章:

  • 网站开发自学网有哪些企业可以做招聘的网站有哪些
  • 网站怎么做百度推广网站开发者模式
  • 学校网站设计制作目的做网站推广方法
  • wordpress建站云平台小程序商城开发平台
  • pc网站转换成微网站网站建设开发哪家质量好
  • wordpress网站使用教程aspnet东莞网站建设多少钱
  • 网站地图提交给百度证券公司如何拉客户
  • 做外贸有哪些免费的网站win7优化大师好不好
  • 网站功能怎么写上海网站制作建设怎么样
  • 网站域名是网站架构吗成都网站搭建优化推广
  • 自己做的网站添加交费功能合肥有什么好的网站建设公司好
  • 做网站品牌龙岩新增病例行动轨迹
  • 任家房网站建设郑州百度网站推广
  • 深圳建设网站的公司简介WordPress多功能投稿
  • 简述织梦网站上传及安怎样在网站上做免费的推广
  • 关于信用体系建设的网站wordpress新闻类模板下载
  • 免费行情软件网站下载大全爱学校vi设计案例
  • 网站外包优化怎样做免费抽皮肤的网站
  • 东八区网站建设网站源码在哪里
  • 重点建设专业 专题网站搜狗官方网站
  • 微信营销工具有哪些使用最佳搜索引擎优化工具
  • 网站推广意识薄弱wordpress授权协议
  • 用php做高中数学题库网站阿里网站建设教程
  • 大兴网站建设公司电话东莞企业网站制作怎么做
  • 网站维护有啥用2021跨境电商最火的产品
  • 专业的东莞网站排名wordpress 客户端使用
  • 做网站需要什么人才网站建设与规划案例
  • 你学做网站学了多久建设网站困难的解决办法
  • 东莞如何搭建网站建设做招聘信息的网站
  • 网站行业认证怎么做安卓开发技术