Delphi中使用SetLength分配的动态数组空间在越界赋值后出现invalid pointer operation异常
来源:互联网 发布:python lambda 编辑:程序博客网 时间:2024/06/06 14:06
摘自:原创
作者:
在Delphi7下,使用SetLength对一个动态数组分配了一段空间,在上标越界后,对元素进行赋值不会出现异常,如:
//////////////////////////////////////////////
procedure a;
var
tmpBuff : array of integer;
begin
...
setLength(tmpBuff,10);//tmpBuff[0..9]
tmpbuff[10]:= 1;//这时上标已经越界了,但不会报异常。
end;
//////////////////////////////////////////////
而且这个数组依然可以正常使用。但是在退出过程或关闭程序时软件会报:invalid pointer operation异常,而且无法准确的定位到异常代码处,非常不利于BUG的排查。特别是当上标是计算得到的时候,就更难确认BUG的位置和原因了。
谨以此文纪念我那被这个小BUG浪费掉的珍贵的8个小时时光!
- Delphi中使用SetLength分配的动态数组空间在越界赋值后出现invalid pointer operation异常
- Delphi的"Invalid pointer operation"异常的解决办法
- “Invalid pointer operation"异常的解决办法
- delphi中setlength使用
- 特别注意:Delphi数组的赋值,SetLength没有作用
- delphi中为动态数组分配空间的问题
- delphi编程的一个问题:Invalid pointer operation
- 窗体操作一切正常,为什么在form.free;时会出现Invalid pointer operation(无效的指针操作)的错误提示?
- 动态数组参数SetLength
- libc死机问题一(invalid pointer、数组或者指针越界)
- Fortran中-fcray-pointer动态数组的使用
- Delphi中WebBrowser(或者EmbeddedWebBrowser)控件打开部分网站报“Invalid floating point operation”异常的解决方法
- 数组越界的内存分配
- C# 数组越界来思考数组的空间分配(交错(非矩形)数组)
- SetLength设置动态数组长度的有关问题
- Fortran把未分配的数组传入子过程,在子过程中分配空间
- delphi 动态数组的使用
- C/C++ 二维动态数组的分配和赋值
- 怎样控制其他程序窗体上的窗口控件
- 粗制滥造的平板电脑键盘皮套
- MSComm的属性、事件及方法
- 为什么TIdTcpClient总是无法接收服务器发来的数据?
- TidTcpClient总结
- Delphi中使用SetLength分配的动态数组空间在越界赋值后出现invalid pointer operation异常
- TeeChart7 Pro中FastLine最多可添加的点数
- 游戏设计的秘密
- dig源码分析
- 表格的样式,留着慢慢看吧
- 比酒量问题与二叉树搜索和路径问题
- 大规模网格形碰撞检测
- 微软正式宣布 Windows Phone 7.8 功能及上市时间
- 关于RGB、YUY2、YUYV、YVYU、UYVY、AYUV DirectShow中常见的RGB/YUV格式