版块导航
正在加载中...
客户端APP下载
论文辅导
申博辅导
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(3262)
>
文献求助
(303)
>
虫友互识
(262)
>
休闲灌水
(200)
>
导师招生
(168)
>
考博
(84)
>
硕博家园
(62)
>
教师之家
(40)
>
论文投稿
(39)
>
考研
(35)
>
招聘信息布告栏
(34)
>
绿色求助(高悬赏)
(34)
>
基金申请
(33)
>
博后之家
(27)
>
公派出国
(22)
>
外文书籍求助
(18)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
程序语言
»
C/C++
»
今天碰到的一个bug
11
1/1
返回列表
查看: 1041 | 回复: 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
]
回复此楼
» 猜你喜欢
博士延得我,科研能力直往上蹿
已经有6人回复
退学或坚持读
已经有27人回复
面上基金申报没有其他的参与者成吗
已经有5人回复
有70后还继续奋斗在职场上的吗?
已经有5人回复
遇见不省心的家人很难过
已经有22人回复
多组分精馏求助
已经有6人回复
高级回复
» 本主题相关价值贴推荐,对您同样有帮助:
奶奶的,气死我了
已经有23人回复
今天看到国内实验室的一篇文章,桑心啊。。。。
已经有56人回复
求助 origin作图不能输出图片——已解决
已经有9人回复
被一个审稿人提了9条意见,还有戏吗?
已经有40人回复
» 抢金币啦!回帖就可以得到:
查看全部散金贴
哈尔滨工程大学青岛创新发展基地招聘青年教师
+
1
/509
多功能 电子微生物生长分析仪 及 微生物快检技术开发服务
+
2
/148
中国科学院深圳先进技术研究院——招聘博士后
+
2
/100
中国科学院深圳先进技术研究院——招聘客座研究生
+
3
/94
天津科技大学邓启良教授团队 招收2026年博士生
+
1
/80
中国海洋大学与中国水产科学研究院 联合培养 专硕 食品加工与安全
+
1
/75
博后平台选择
+
1
/62
电力全国重点实验室双一流A类长江学者团队招2026年全日制博士1-2名/博士后
+
2
/58
操作求助
+
1
/35
山东科技大学招聘化学化工博士博士后
+
1
/27
德国Karlsruhe Institute of Technology招收电化学储能及联合培养CSC博士
+
1
/13
青岛大学招收少数民族【少干计划】生物与医药博士研究生
+
1
/8
南京林业大学国家级青年人才团队招收2026年生物质转化/炭材料/储能等方向博士生
+
1
/7
加氢裂化
+
1
/5
山东第一医科大学第一附属医院招聘事业编制科研岗
+
1
/4
中山大学柔性电子学院黄维院士团队诚招博士后(柔性可穿戴电子或相关方向)
+
1
/3
海南大学化学院—功能分子器件团队2026博士/研究助理招生+博士后招聘
+
1
/3
层流压差式流量控制器在氢能行业的应用,一文详解奥秘!
+
1
/2
海南大学国家优青团队招聘“AI/大数据+材料”方向专任教师(事业编制)
+
1
/1
上海理工大学“新能源材料”专业-赵斌教授招收申请考核制博士生【能源催化方向】
+
1
/1
1楼
2012-05-29 02:12:23
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
nbjnh
木虫
(正式写手)
应助: 14
(小学生)
金币: 4668.8
帖子: 556
在线: 218.6小时
虫号: 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云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
信息提示
关闭
请填处理意见
关闭
确定