谁帮我翻一下这个程序是啥意思?如何修改?
一、应用程序没有检查内存分配失败
程序需要一块内存用以储存数据时,就需要使用操作系统提供的「功能函数」来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是「动态内存分配」,内存地址也就是编程中的「光标」。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值「0」已不表示新启用的游标,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的「健壮性」。若应用程序没有检查这个错误,它就会按照「思维惯性」认为这个值是给它分配的可用游标,继续在之后的执行中使用这块内存。
真正的0地址内存区储存的是计算机系统中最重要的「中断描述符表」,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的「写内存」错误,并指出被引用的内存地址为「0x00000000」。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中「安装」的病毒程序),更改了大量的系统参数和系统档案之后。
二、应用程序由于自身BUG引用了不正常的内存光标
在使用动态分配的应用程序中,有时会有这样的情况出现:程序试突读写一块「应该可用」的内存,但不知为什么,这个预料中可用的光标已经失效了。有可能是「忘记了」向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而「没有留意」等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图「违法」的程序唯一的下场就是被操作终止执行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效光标不一定总是0,因此错误提示中的内存地址也不一定为「0x00000000」,而是其它随机数字。如果系统经常有所提到的错误提示,下面的建议可能会有说明 :
1.检视系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。
2.更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统档案、修正系统参数。
有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。
3.试用新版本的应用程序。
这段话的意思大概是:该应用程序受安全策略的限制,不允许这样操作,需要安全许可.若想允许这样的操作请与系统管理员联系,或者使用MICROSOFT.NET安全策略工具.
单击continue程序将忽略此错误.
感觉这是英文文章
通过字符逻辑加密
.........什么语言啊。。。。。。。。。
帮我写下这个程序啊,建立一个Boat类!!!
using System;namespace Test { class Program { static void Main(string[] args) { Boat b1 = new Boat("CHN-01", 5, "××造船厂", "2008");Console.WriteLine(b1.ToallString());Boat b2 = new Boat();b2.RegistrationNo = "CHN-02";b2.Length = 10;b2.Manugfacturer = "×...
谁帮我翻译一下这个游戏的安装说明?!!!
1.把他的游戏包解压。2.把Unace压缩包解压,(或者双击打开他们的安装程序)如果自己解压了,就把Crack.ace文件复制到游戏要安装目录下。3.运行游戏安装 Setup.bat 4.开始游戏 运行ShadowVault.exe即可 也就是说:这是个破解游戏的安装过程,似乎要先复制破解包再解压游戏安装到破解包Crack.ace同目录...
各位大侠们帮我翻译下这个单片机程序啊 把每一句的意思翻译出来这是个...
RET ;子程序返回 DELY:MOV R6,#20 ;此部分为延时子程序 传送 通用寄存器6,立即数20 DEL1:MOV R7,#100 ;传送 通用寄存器7,立即数100 DJNZ R7,$ ;减一不为0转移 通用寄存器7,到本行 DJNZ R6,DEL1 ;减一不为0转移 通用寄存器6,DEL1 RET ;子程序返回 TAB: DB 0C0H,0...
谁能帮我解释一下这段程序的意思?最好每一句特别是开头那几句有什么...
小弟只有10年VC++经验,帮你解读一下哦: 满意的话麻烦给我分.如下代码是为了实现: 接收串口过来的数据! 首先初始化一个泛型类型接受容器, 接收串口接口发来的数据,然后显示在界面上的edit控件上!VARIANT variant_inp; 用VARIANT 泛型变量类型 定义一个数组变量variant_inp; 泛型就是任何类型都...
谁能帮我解释一下这段程序?最好是逐条的。
R1++;LJMP LOOP; 调到LOOP开始执行程序 END 30H-8H=28H=40;所以一共转换40次,每个ADC0809有8个通道,所以我估计在每个通道前还有5个选择开关——DPH最后要加40,也就是P2.3~P2.5应该是5选1的地址线。
求汇编语言高手帮我分析下这个程序,非常感谢!!!
EXTERN LOAD:FAR,SAVE:FAR 和 PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX 配合,用于标准序返回DOS。(事实上感觉应该还有MOV AH,4CH INT 21H)LEA DX,SOURCE ;数据区起始地址 LEA SI,NAME0 ;原始数据文件名 MOV CX,N*2 ;字数 CALL ...
帮我解释一下这个C语言程序吧
1.struct STU {char num[10];float score[3];};注意大括号外有分号 2.sun=sum+p->score[i];应该是sum 结果270.00 p指向数组s[0],sum=sum+p->score[i]=sum+s[0].score[i]总之,sum=0+90+95+85
谁能帮我看一下这一段C语言程序,哪里不对劲,可恶心我了,是在没招了...
scanf函数的每一个参数都应该是指针类型。传过去一个char类型的值,会导致Windows写入不可使用的低地址内存导致程序崩溃。另外就是你2次调用fgets都出错。FILE指针,也就是文件指针,存有一个“文件的当前位置”,不管是读还是写都使用这个当前位置。想要读出刚刚写入的字符串,需要使用fseek函数移动文件的...
帮我看看这个程序那里有问题
缺少头文件#include<math.h> 第一个if少了括号 第二个if里边少个=,后面的else后面的if()没有加 ...
麻烦各位帮我看一下图中的这段程序 为什么是D呢? 我怎么推都是C...
==这个是关系运算符,优先级大于=赋值运算.i==j \/\/结果是false b = i==j 就相于把i==j的结果给了b,所以其b的值是0 if (b=i==j)变成了判断b的值是否为0 所以执行else子句
晁侄盆炎: System Idle Process - 进程信息 进程文件: System Idle Process 或者 System Idle Process 进程名称: System Idle Counter 描述:System Idle不是一个进程,更多用于统计剩余的CPU资源情况.无法删除该进程.出品者: Microsoft 属于: ...
武陟县13345963871: 能帮我解释一下这个程序吗?谢谢!!!?
晁侄盆炎: 这个程序就是让输入一个星期几,然后程序会循环判断出输入的星期几是一周内的第几天.
武陟县13345963871: 帮我翻译一下这个程序,最好每一句的意思都有.急用谢谢 - ?
晁侄盆炎: //////////////// // 结构体定义 struct employees { char name[8]; //员工名字 int kaoqin; //出勤状态 } emps[N]; //定义emps为employees型变量//////////////////// // 输入考勤信息 input() struct employees emps[]; { int i,j;//循环输入每个人的信息 for(i=1;i<=N;...
武陟县13345963871: 请帮我翻译下 VBA中这个程序是什么意思 - ?
晁侄盆炎: ActiveWindow.SmallScroll Down:=-12 '活动窗口向上滚动12行 Range("K3:K7").Select '选择K3:K7单元格 Range(Selection, Selection.End(xlDown)).Select '如果K3:K7都有数据,继续选择K7下面有数据的单元格到空为止 ActiveWindow....
武陟县13345963871: 请帮我解释一下这个程序是什么意思,尤其是第四句 完全不懂 初学者 谢谢大神们了. - ?
晁侄盆炎: 哇塞,这是C嘛?好久没看过了~~不一定说的对 int data[5]; //整形数组 5个元素 for(unsigned int i=0; i<5; ++i) //for 循环,初始化i为无符号整形,i小于5,i是先增加再引用 { data[i] = 12*(i+1); //计算值,12*(i+1);也就是 12*(0..1 ..2 ..3 ..4 +1),运算后是 12 24 36 48 60 printf("data [%d] address: %p contents: %d\n", i ,&data[i], data[i]); //打印数组,指针的地址,内容
武陟县13345963871: 谁能帮我翻译一下这个程序 - ?
晁侄盆炎: 谁能帮我把这个程序全部详细翻译一下啊? //端口初始化:void Init_Port(void){P1DIR=0; //P1DIR什么意思?P1SEL=0; //P1SEL是什么意思?P1DIR |=BIT0; //P1DIR跟谁位逻辑或赋值给BIT0P1DIR |=BIT1;P1DIR |=BIT2;return;}//管脚高低电平产生...
武陟县13345963871: 那位大哥能帮我看下这个程序什么意思吗?
晁侄盆炎: 就是一个条件编译吧,你后面标得还蛮清楚的就是说如果前面有使能的东西编译了,后面的才编译
武陟县13345963871: 谁能帮我解释一下这个C++程序是什么意思啊?麻烦帮我每条语句加个详细的注释 - ?
晁侄盆炎: @',也就是对应数组b里面 } sin.get(ch); /// 数字,ok 把这个字符还放入字符串缓冲输入流里 sin>>x; /// 最后结束在字符串缓冲输出流输入一个字符'@',与结束符 cout<.putback(ch).h> void main() { char a[50]/ istrstream sin(a; / 从标准输入...
武陟县13345963871: 谁来帮我详细地解释一下这个程序?
晁侄盆炎: 这是一个简单的C++程序,实现的是把从6开始的值,判断它是奇数还是偶数,如果是小于6的,都返回奇数! #include <iostream> using namespace std; int main() //主函数入口 {int prime(int); int n; cout<<"input an integer:"; //提示用户输...
武陟县13345963871: 求助!谁能帮我翻译一下这段程序. - ?
晁侄盆炎: 定义了一个没有返回值的函数function,形参为整型,函数体为: 定义一个整型的变量i, 初始值为4,循环的上界为a,每循环一次后i的值加上2, 当i不等于0的时候,输出i,并换行...