版块导航
正在加载中...
客户端APP下载
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(2229)
>
虫友互识
(125)
>
导师招生
(23)
>
基金申请
(15)
>
休闲灌水
(15)
>
考博
(14)
>
硕博家园
(9)
>
文献求助
(9)
>
论文道贺祈福
(7)
>
绿色求助(高悬赏)
(4)
>
教师之家
(4)
>
外语学习
(3)
>
论文投稿
(3)
>
博后之家
(2)
>
留学DIY
(2)
>
找工作
(2)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
程序语言
»
C/C++
»
今天碰到的一个bug
11
1/1
返回列表
查看: 1225 | 回复: 10
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
wangww2011
木虫
(著名写手)
程序强帖: 13
应助: 11
(小学生)
金币: 4023.1
帖子: 1915
在线: 1537.1小时
虫号: 772953
[交流]
今天碰到的一个bug
今天根据一个同学的要求把以前的一个代码修改了一下就发过去了,后来自己拿这个代码去算另一位同学发来的文件,发现提示内存不足,遂把体系改小,依旧报错,在想是不是今天把代码改坏了,又检查了一下代码,其实今天只是加了一个函数,原来的都没有动,我也就是用if语句判断了下,后来发现问题就出在这里了,到现在还是不知道为什么。我重新写了个文件,并没有发现问题。
CODE:
#include
using namespace std;
class TestBug {
private:
mutable int x;
public:
void print() const;
};
void TestBug::print() const {
x = -1;
int y=x;
if (x > 0) {
cout << "x=" << x << endl;
}
if (y > 0) {
cout << "y=" << y << endl;
}
}
int main() {
TestBug tb;
tb.print();
return 0;
}
正确的结果是什么都不输出呗(当然上面的代码是没有问题的),但在原代码中bug的结果是
CODE:
x=-1
我只能感叹太复杂的东西真的是会出错的,我重新定义一个本地变量,代码正常了,我很想知道为啥,因为原代码从逻辑上根本没有问题。
[
Last edited by wangww2011 on 2012-5-29 at 02:20
]
回复此楼
» 猜你喜欢
看《给阿ma的情书》有感
已经有3人回复
E0414, 我的本子有没有希望?
已经有9人回复
青A35岁以下通知答辩了吗
已经有3人回复
【全奖博士/科研助理/博后招生】新加坡南洋理工大学机械与航空航天学院
已经有4人回复
希望面上有个好结果
已经有7人回复
三区计算机方向期刊推荐
已经有5人回复
sci论文二审求助
已经有5人回复
高级回复
» 本主题相关价值贴推荐,对您同样有帮助:
奶奶的,气死我了
已经有23人回复
今天看到国内实验室的一篇文章,桑心啊。。。。
已经有56人回复
求助 origin作图不能输出图片——已解决
已经有9人回复
被一个审稿人提了9条意见,还有戏吗?
已经有40人回复
» 抢金币啦!回帖就可以得到:
查看全部散金贴
征一人,此生平安欢喜度日常
+
1
/88
温州医科大学李校堃院士团队宋林涛/黄志锋课题组诚聘博士后
+
1
/76
中山大学智能工程学院【智能视觉方向】金枝教授团队招聘博士后
+
2
/70
Cu2O纳米线
+
5
/70
骨生物材料与侗药调控类器官再生湖南省普通高等学校重点实验室招聘生物医用材料相关博
+
2
/66
坐标北京,诚征男友,找到会删帖。试试运气!说不定就有了!
+
1
/65
东南大学有机多孔功能材料团队(国家杰青团队)招收2027级推夏令营免硕士/直博生
+
1
/32
西南交通大学环境科学与工程学院龙明策团队诚聘博士后
+
1
/30
西交利物浦大学招收27年1月入学奖学金博士生1名【人机协作交互与数字孪生】
+
1
/28
博士毕业之后申请发明专利
+
1
/27
湖南师范大学(211)—招收2026年入学的“申请-考核”制博士(有微纳光学经验者优先)
+
1
/24
重庆大学金属塑性成形方向招收2027年博士研究生(学博)
+
2
/16
密苏里大学生物材料合成生物学博士后招聘
+
1
/15
东北师范大学荒漠与草地生态学方向诚聘博士后青年才俊
+
1
/8
四川大学周加境课题组招聘博士后/博士/研究助理(生物质与藻类资源利用/自组装材料)
+
1
/8
墨尔本大学(26年QS19)招全奖博士/CSC博士(补齐全奖)/访问学者等-材料/生物医学等
+
1
/7
哈尔滨工业大学(深圳)赵怡潞课题组诚招博士后、2027学年博士生
+
1
/3
香港中文大学陈也课题组、香港中文大学(深圳)陈仲欣课题组招收联合培养博士后
+
1
/1
2026年黄河科技学院纳米功能材料研究所招聘
+
1
/1
DSC测试接单
+
1
/1
1楼
2012-05-29 02:12:23
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
nbjnh
木虫
(正式写手)
应助: 14
(小学生)
金币: 4670.3
帖子: 556
在线: 219小时
虫号: 1103994
★
wangww2011(金币+1): 谢谢参与
我把楼主那段代码编译、运行了一遍,没有任何问题。我用的是VS2008。
赞
一下
回复此楼
3楼
2012-05-29 08:19:26
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
devymex
捐助贵宾
(初入文坛)
应助: 0
(幼儿园)
金币: 14.5
帖子: 13
在线: 2.3小时
虫号: 1327272
★
wangww2011(金币+1): 谢谢参与
有可能是别的地方把栈写坏了(过界写入)。建议在int y=x;处设断点单步调试,跟踪x变量的值,看看哪里发生了改变。
赞
一下
回复此楼
4楼
2012-05-29 11:12:50
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
wangww2011
木虫
(著名写手)
程序强帖: 13
应助: 11
(小学生)
金币: 4023.1
帖子: 1915
在线: 1537.1小时
虫号: 772953
引用回帖:
3楼
:
Originally posted by
nbjnh
at 2012-05-29 08:19:26
我把楼主那段代码编译、运行了一遍,没有任何问题。我用的是VS2008。
上面的代码确实没有什么问题的,但是原代码的确会出现问题,而且是第二次运行时出现问题。
赞
一下
回复此楼
5楼
2012-05-29 19:55:45
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
wangww2011
木虫
(著名写手)
程序强帖: 13
应助: 11
(小学生)
金币: 4023.1
帖子: 1915
在线: 1537.1小时
虫号: 772953
引用回帖:
4楼
:
Originally posted by
devymex
at 2012-05-29 11:12:50
有可能是别的地方把栈写坏了(过界写入)。建议在int y=x;处设断点单步调试,跟踪x变量的值,看看哪里发生了改变。
回头调试下吧,有点小麻烦的是程序必须用tcl载入,回头看看如何调试。
原来tclsh也一样,可以直接载入,呵呵
[
Last edited by wangww2011 on 2012-5-29 at 20:14
]
赞
一下
回复此楼
6楼
2012-05-29 20:00:29
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
nebulaly
木虫
(著名写手)
应助: 7
(幼儿园)
金币: 4170.1
帖子: 1311
在线: 410.5小时
虫号: 910959
★
wangww2011(金币+1): 谢谢参与
可能是多线程的问题
赞
一下
回复此楼
7楼
2012-05-30 00:19:48
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
wangww2011
木虫
(著名写手)
程序强帖: 13
应助: 11
(小学生)
金币: 4023.1
帖子: 1915
在线: 1537.1小时
虫号: 772953
引用回帖:
7楼
:
Originally posted by
nebulaly
at 2012-05-30 00:19:48
可能是多线程的问题
也不是 我把线程关了 编译的单线程
赞
一下
回复此楼
8楼
2012-05-30 02:43:41
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
xl1247644534
铜虫
(小有名气)
应助: 0
(幼儿园)
金币: 329.1
帖子: 128
在线: 16.7小时
虫号: 1320111
★
wangww2011(金币+1): 谢谢参与
在coldblocks 中用 gcc编译器编译没有问题
赞
一下
回复此楼
9楼
2012-06-03 05:47:11
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
gov_sb
新虫
(初入文坛)
应助: 2
(幼儿园)
金币: 0.8
帖子: 5
在线: 35分钟
虫号: 1846519
★
wangww2011(金币+1): 谢谢参与
if (x > 0)
活生生的怀疑是这里的问题,
-1在内存里是 0xFFFFFFFF ,它既可以表示负数-1 ,也可以表示个很大的正数
估计是判断的时候,悲剧掉了。
这是编译器的问题
赞
一下
回复此楼
10楼
2012-06-04 19:59:38
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
简单回复
fengmeiyi
2楼
2012-05-29 05:32
回复
wangww2011(金币+1): 谢谢参与
zhanglover
11楼
2012-06-04 22:24
回复
wangww2011(金币+1): 谢谢参与
相关版块跳转
第一性原理
量子化学
计算模拟
分子模拟
仿真模拟
程序语言
我要订阅楼主
wangww2011
的主题更新
11
1/1
返回列表
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
高级回复
(可上传附件)
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
信息提示
关闭
请填处理意见
关闭
确定