游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2268|回复: 2

各位呀,谁来帮我看看这段程序有错吗?

[复制链接]

65

主题

225

帖子

232

积分

中级会员

Rank: 3Rank: 3

积分
232
发表于 2003-10-19 20:24:00 | 显示全部楼层 |阅读模式
这是个A*寻路算法,在本网站上Down下来的。
可是加入这个类库后,程序运行不到5分钟,
在Win98中就发生“非法操作”
在Win2000中提示:“XX所引用的内存0xcdcdcdcd,该内存不能为'read'”
调试时程序一般中段在:new操作运算上。
我是这样使用该类库:

void Init()//一次性初始化
{
...
CMap Map;
Map.Cell=new BYTE[600*400];
Map.Width=600;
Map.Height=400;
CFindPath FindPath;
for(DWORD i=0;i<600*400;i++)
   *(Map.Cell+i)=rand()%5==0?1:0;//随机创建不可移动区
 FindPath.Init(&Map);
...
}

void Loop()//循环函数
{
...
FindPath.Find(rand()%599,rand()%399,rand()%599,rand()%399);
...
}

sf_20031019202443.zip

3.79 KB, 下载次数:

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20468
发表于 2003-10-19 22:59:00 | 显示全部楼层

Re:各位呀,谁来帮我看看这段程序有错吗?

指针越界或者数组越界的常见错误。

你可以检查一下关于指针数组操作的一些处理部分,不过这类错误的查找相当困难。

15

主题

109

帖子

109

积分

注册会员

Rank: 2

积分
109
QQ
发表于 2003-10-20 09:15:00 | 显示全部楼层

Re:各位呀,谁来帮我看看这段程序有错吗?

出现上面的错误,非法使用无意义内存,建议将Map.cell设为双指针方式进行处理和管理试试!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-23 04:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表