标题:俄罗斯方块程序编译和运行都没问题,可debug中的.exe文件却运行不了
只看楼主
无名可用
Rank: 4
等 级:业余侠客
帖 子:79
专家分:259
注 册:2010-7-27
结帖率:100%
已结贴  问题点数:20 回复次数:4 
俄罗斯方块程序编译和运行都没问题,可debug中的.exe文件却运行不了

这是双击.exe文件后弹出的错误对话框..
引起错误的代码我已经找到了,是Type.h中的vector<Block*> blocks变量为空,所以当程序执行类似blocks[0]->GetR()语句时引起vector下标出界的错误.我在Type.cpp中'Type的构造方法'的最后加上了cout<<blocks.size()<<endl语句,用以查看blocks的大小。
打开决绝方案运行可以正常程序,但运行debug文件中的.exe文件后就出错,请大家帮我看看原因.  

  各种形状和地图都是通过文件生成的,文件都在smallGame2下的file文件夹下
搜索更多相关主题的帖子: 俄罗斯方块 debug exe 文件 
2010-10-12 22:19
无名可用
Rank: 4
等 级:业余侠客
帖 子:79
专家分:259
注 册:2010-7-27
得分:0 
忘了传程序了。。
smallGame2.rar (1.57 MB)
2010-10-12 22:23
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
得分:10 
说明你真的写错了,请特别注意你的下标

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-10-13 08:19
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
得分:10 
release中“没有错”,只是没有去检查下标越界,不代表你的程序是对的

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-10-13 08:20
无名可用
Rank: 4
等 级:业余侠客
帖 子:79
专家分:259
注 册:2010-7-27
得分:0 
我又仔细找了一下错误原因,发现原来是读文件时出现了异常,我的文件中都是‘0’‘1’,而读文件时却成了‘?’,
,我的程序中遇‘1’就生成new Block(),并放入vector<Block*> blocks中;因为读取的都是‘?’,所以没生成Block,因此vector就为空,接下来对vector操作时就引发了下标越界的错误。
  我把程序稍微改了一点,先显示从文件读取的每一个字符。。我不明白为什么不能正确读出文件中的字符,难道和字符编码有关?还有一点我也令我很疑惑,为什么在release中可以正确读出文件中的字符,而到dubeg中的.exe文件就不行了?如果和字符的编码有关,那也应该两者都出现同样的错误啊..
  这是我改了之后的程序:
smallGame2.rar (1.59 MB)

2010-10-13 13:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-322731-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.197554 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved