qzmTimemodule的致命错误图示(IMPORTANCE)
日期:2010-3-3 7:42:46 点击:
来源:本站整理
作者:
点击【 大 中 小 】放大字体.
实。。会造成内存越界!!!(黑客常常就是利用这样的BUG来进行入侵的),跟踪发现如下函数中存在未分配空间即赋值的致命BUG!!!!!!plcjs.技.术_网

P.L.C.技.术.网——可编程控制器技术门户
由于struct qzm_tm q_tm;只是声明,而不是定义(结构的定义和自动变量是有区别的,自动变量声明的同时会由运行时自动赋值,之所以运行时对结构的声明不即时进行内存分配是出于声明的结构有可能在之后并不使用上并且结构所占用的内存空间有可能很大,基于C语言设计的本意(程序员确保自已做的是正确的)和出于效率的考虑,声明结构不等于定义了该结构),所以在qzm_gmtime FUN中引用一个声明将会导致系统的随机性崩溃!!!!在Watch中观察该变量会发现该观看的是内存中随机的地址中的内容,如下图所示:WWW_P※LCJS_CO※M-PLC-技-.术_网
解决的办法是使用前定义(也叫声明和赋值同时进行)
WWW.PLCJS.COM——可编程控制器技术门户
struct qzm_tm q_tm = {0}; //这时在WATCH 窗口中看到的q_tm的内容为全0,说明已正确分配内存空间给该变量。P.L.C.技.术.网——可编程控制器技术门户
P
L
C
技
术
网
|
可
编
程
控
制
器
技
术
门
户
|
十
万
P
L
C
工
程
师
的
共
同
选
择
!
·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
深圳秦合源科技有限公司 | | 深圳市秦合源科技有限公司是国内领先的规模较大品种齐全的称重传感器(Loadce...... |
|
|
深圳联脉电子有限公司 | | 公司自1998年创立以来,一直致力于工业控制产品的研发、制造、销售,目前有机房监...... |
|
|
东莞市友诚自动化 | | 本公司专业代理台湾永宏、台达PLC、HITECH人机、特价供应文本显示器MD20...... |
|
|
·栏目热门排行
·站内热门排行
jhgjgjgjjg,S7,FX,自锁,PLC程序,梯形图,D/A,A/D,串口,USB,RS232,电缆,施耐德,Twido,CPM1A,三菱,触摸屏,印刷,计数器,伺服,PID,西门子,安川,欧姆龙,台达,PLC技术,松下,Rockwell,变频,步进,解密,模拟,数字,仿真,STEP7,SIMITIC,通讯,I/O,定时器,指令,现场总线,供水,培训,组态,WINCC,CAN总线,FANUC,数控