首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

为何在使用Byte(Pointer(Longint.当里面的值上千时内存报错

2013-07-08 
为什么在使用Byte(Pointer(Longint..当里面的值上千时内存报错?在运行Byte(Pointer(Longint(SpecBuf) + X

为什么在使用Byte(Pointer(Longint..当里面的值上千时内存报错?
在运行Byte(Pointer(Longint(SpecBuf) + X * SPECWIDTH + SpecPos)^) := 255;时,当SPECWIDTH上1000时,报内存出错,为什么啊,超过内出地址了吗?怎么办啊!
[解决办法]
for X := 0 to SPECHEIGHT do
你把修改为: for X := 0 to SPECHEIGHT - 1 do 看看,
那个byte(Pointer(Longint(SpecBuf) + X * SPECWIDTH + SpecPos)^) := 255 不用修改的!

[解决办法]

引用:
// move marker onto next position
  SPECWIDTH:=5000;
  SpecPos := (SpecPos + 1) mod SPECWIDTH;
  for X := 0 to SPECHEIGHT do
      Word(Pointer(Longint(SpecBuf) + X * SPECWIDTH + SpecPos)^) := 255;  //Byte


试下将for X := 0 to SPECHEIGHT do 改为 for X := 0 to SPECHEIGHT - 1 do

热点排行