版块导航
正在加载中...
客户端APP下载
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(3300)
>
虫友互识
(389)
>
文献求助
(380)
>
导师招生
(255)
>
考博
(168)
>
硕博家园
(137)
>
休闲灌水
(97)
>
博后之家
(84)
>
论文投稿
(56)
>
招聘信息布告栏
(55)
>
基金申请
(53)
>
仿真模拟
(46)
>
攻关文献(高奖励)
(38)
>
绿色求助(高悬赏)
(31)
>
教师之家
(24)
>
找工作
(19)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
程序语言
»
C/C++
»
今天碰到的一个bug
11
1/1
返回列表
查看: 1165 | 回复: 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
]
回复此楼
» 猜你喜欢
求碳排放博导;方向是LCA、生命周期可持续发展以及碳排放
已经有5人回复
26年博士申请自荐-电催化
已经有7人回复
2026年博士申请求捞
已经有3人回复
2026博士或科研助理转27年博士
已经有6人回复
国自科送审了吗
已经有11人回复
博士招生
已经有5人回复
夜,静悄悄的
已经有8人回复
研究生做的很差,你们会让毕业吗?
已经有6人回复
26年申博自荐-计算机视觉
已经有4人回复
高级回复
» 本主题相关价值贴推荐,对您同样有帮助:
奶奶的,气死我了
已经有23人回复
今天看到国内实验室的一篇文章,桑心啊。。。。
已经有56人回复
求助 origin作图不能输出图片——已解决
已经有9人回复
被一个审稿人提了9条意见,还有戏吗?
已经有40人回复
» 抢金币啦!回帖就可以得到:
查看全部散金贴
坐标上海,找女朋友,感兴趣的来
+
1
/974
上海嘉定周边俩小时车程
+
5
/170
东南大学废弃碳资源利用团队(杰青/海优团队)博士后、科研助理及27级博士生招募
+
1
/128
山东大学深地储能系统工程课题组常年招聘优秀博士后研究人员
+
1
/84
在广东佛山,等一个她
+
1
/72
双一流高校-南京林业大学-化学工程学院-国家海外优青团队招2026级博士(5月15号截止)
+
1
/46
湖南大学材料学院招收2026年秋季入学学术博士生1名:锂电池方向
+
1
/39
2026年江西师范大学药学院陈芬儿院士课题组招收智能药学博士生
+
1
/34
昆明理工大学余富朝团队2026年诚招有机化学/生物化学等方向“申请-审核”博士研究生
+
1
/30
北京邮电大学电子科学与技术招收博士
+
1
/29
南昌大学药学院熊小东题组招收2026级博士生
+
1
/27
坐标南京
+
1
/20
香港大学化学系刘俊治课题组招聘博士后
+
1
/14
中国农业大学资源与环境学院 - 招聘杰出人才、青年研究员、优秀人才和博士后
+
1
/13
英国大学招收电子散热及数字孪生研究方向的博士生
+
1
/8
招收2026年秋季入学博士生1名(河北工业大学/北京科技大学联合 增材制造/生物材料)
+
1
/3
英国伦敦布鲁内尔大学高薪招聘欧盟玛丽居里全奖博士
+
1
/3
天津医科大学基础医学院博士后招聘
+
1
/2
双一流高校南林化学工程学院-国家级青年人才团队招2026级博士(最后一波)
+
1
/1
双一流天津工业大学电信学院李鸿强教授招收2026年申请审核制博士
+
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云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
信息提示
关闭
请填处理意见
关闭
确定