Delphi访问冲突分配局部变量
发布时间:2020-12-15 04:02:07 所属栏目:大数据 来源:网络整理
导读:这似乎是世界上最简单的东西,我已经准备好把头发拉过来了. 我有一个看起来像这样的单位; Unit myUnit;// ...//normal declarations//...Public//bunch of procedures includingProcedure myProcedure;const//bunch of constantsvar//bunch of vars including
这似乎是世界上最简单的东西,我已经准备好把头发拉过来了.
我有一个看起来像这样的单位; Unit myUnit; // ... //normal declarations //... Public //bunch of procedures including Procedure myProcedure; const //bunch of constants var //bunch of vars including myCounter:integer; Implementation Uses //(all my uses) // All of my procedures including Procedure myProcedure; try // load items from file to TListBox - this all works except on EReadError do begin // handle exception end; end; //try myCounter:=0; // <-- ACCESS VIOLATION HERE while myCounter //...etc 这是一个变量的简单分配,我不知道它为什么这样做.我已经尝试将该变量本地的变量声明到整个过程 – 无论我在哪里尝试这样做,我都不能在这个过程中向任何地方声明的整数赋值为0,而不会抛出访问权限违反.我完全难过了. 我从同一单元内的按钮OnClick处理程序中调用该过程,但无论我从哪里调用它都会引发异常.疯狂的是,我在整个程序中的十几个其他地方做同样的事情没有问题.为什么在这?我完全失去了. 解决方法
读取地址00000008意味着您正在读取一个与nil指针相差8个字节的变量.这根本不适合你在这里尝试做的事情,因为你正在写作,而不是阅读,而你正在编写一个常量,而不是从某个地方读取的变量.
你确定这是触发异常的实际行吗?你在这条线上放了一个断点吗?您是否尝试过将此行移至程序的顶部? 没有你真正的代码在我面前很难确定,但如果我不得不猜测,我会说这之前的行导致了异常,然后指令指针已经增加,所以Delphi突出显示下一行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |