社区
C语言
帖子详情
见鬼了!变量数据自己变了
freeleo
2002-08-25 12:55:15
我单步追了半天,发现有一个变量的数据自己由0变为1,但没有任何操作改变他的值啊(不是引用/指针)
另外,我把链表保存到文件中再清空链表,结果文件里的内容全没了,而且肯定是再清空链表的时候没的。一个在硬盘,一个在内存,怎么会这样?!!!
真是”撞到鬼“了!!! 疯掉!谁能给俺个确切的解释啊?
...全文
169
36
打赏
收藏
见鬼了!变量数据自己变了
我单步追了半天,发现有一个变量的数据自己由0变为1,但没有任何操作改变他的值啊(不是引用/指针) 另外,我把链表保存到文件中再清空链表,结果文件里的内容全没了,而且肯定是再清空链表的时候没的。一个在硬盘,一个在内存,怎么会这样?!!! 真是”撞到鬼“了!!! 疯掉!谁能给俺个确切的解释啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
36 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
apao
2002-08-28
打赏
举报
回复
关于“单步全部正常通过,完全编译执行则出错”的问题我也碰到过几次,Tommy() 说的有道理,但有时不是内存访问越界、溢出,我听到一种解释(忘了从哪听到的),说是完全编译执行时会对代码进行优化,所以执行顺序和单步执行时并不完全一样(当然这种执行顺序的改变一般对程序没有影响,但可能极少数情况下会出错)
Tommy
2002-08-28
打赏
举报
回复
自己调试一下,看看哪里出错了,再改就是了。
多调试一下程序,提高调试能力吧,对以后的工作很有好处的
Tommy
2002-08-28
打赏
举报
回复
我听到一种解释(忘了从哪听到的),说是完全编译执行时会对代码进行优化,所以执行顺序和单步执行时并不完全一样
==========================
是会这样的,如果在多线程的环境下,是要特别注意优化引起的问题。但是由优化引入的错误是不多的,发生的可能性非常小,我是没有遇到过,如果有这么大的问题,大家早就将那个编译器扔掉了:)
楼上说的在不同地方打印变量的值也是一种方法,可以缩小范围,找到出错的地方。毕竟在调试版中没有问题,release版中又不方便进行调试。
winco
2002-08-28
打赏
举报
回复
关注中……
echoher
2002-08-28
打赏
举报
回复
自己写个log函数,把那个自动变化的值给打出来,看看在哪变的
文件没保存可能是忘了colse()了
colorrain
2002-08-28
打赏
举报
回复
单步全部正常通过,完全编译执行则出错”的问题同意楼上所说。
变量值会改变我遇到了好多次,但最终都是因为malloc的少,使用过多引起的。你的问题应该在内存越界上.
winstarr
2002-08-27
打赏
举报
回复
先看代码
freeleo
2002-08-27
打赏
举报
回复
我怎么解决呢?
Tommy
2002-08-26
打赏
举报
回复
如果是VC的话,在变量上放一个内存访问断点,就可以在变量值被修改的时候中断程序,看看是谁改了你的变量了。
具体方法:
先知道变量的地址,如0012FF6C,再进入菜单上Edit-Breakpoints-Data,表达式中写变量的地址0x0012FF6C。这样就可以在变量值被修改时中断程序了。
“单步全部正常通过,完全编译执行则出错”这种问题一般就是有内存访问越界、溢出引起的。由于Debug时和Release中程序的内存布局不完全一样,运行环境也不一样,所以在一个环境中可能正常,但是在另一个环境中就不一定正常了。
stidio_zhougang
2002-08-26
打赏
举报
回复
我想如果那些问题都不是,那就只能是内存越界了,仔细检查有没有越界的地方
freeleo
2002-08-26
打赏
举报
回复
miaoweijun(苗苗) 举个例子说明一下行吗?
那个鬼变量我给绕过去了,所以以上关于“青链表时文件莫名其妙被删除”,“单步全部正常通过,完全编译执行则出错” 这两个问题更重要一些,
正在等待更详细地解释,谢谢各位的指点
lanfengjiyue
2002-08-25
打赏
举报
回复
说了半天,怎么给你主意啊
笑面佛_正版
2002-08-25
打赏
举报
回复
看看你的代码,是否用了全局变量,共享的变量,小心在DLL中的共享变量,等等其他程序可能访问改变的变量
miaoweijun
2002-08-25
打赏
举报
回复
1
不要怀疑撞到了鬼。这种问题我常常碰到。如果没有特别的原因。多半是你的一些其他操作把这个变量的内存冲了。你看看其他地方的付值操作吧。鬼是无辜的。
fangrk
2002-08-25
打赏
举报
回复
那就散分吧!:)
bigbigfans
2002-08-25
打赏
举报
回复
源码
freeleo
2002-08-25
打赏
举报
回复
代码太长了,没法贴,: Larky(睡仙) 的解释很有道理,多谢,但我怎么才能看出来呢?
duda(dd) 跟我想的一样,但我对文件流flush(),lock(),close()&open(),文件里的内容仍然被删除!!
另外,我的程序单步执行完全正确,但程序如果完全运行就出现莫名其妙的错误。
持续撞鬼中……………………
hooksea
2002-08-25
打赏
举报
回复
源码先
earthharp
2002-08-25
打赏
举报
回复
我怀疑你可能程序有地方逻辑出现了问题吧
fangrk
2002-08-25
打赏
举报
回复
9494
先检查你的代码
加载更多回复(16)
浅谈Angularjs中不同类型的双向
数据
绑定
Angularjs1.X中两种不同的双向
数据
绑定 聊聊 Angularjs1.x中那些活
见鬼
的事情。 一. html与Controller中的双向
数据
绑定 html-Controller的双向
数据
绑定,在开发中非常常见,也是Angularjs1.x的宣传点之一,使用中并没有太多问题。 1.1
数据
从html流向controller 也就是从 视图层 流向 模型层 ,原生html中需要使用表单元素(例如 input 标签)来收集用户输入信息,Angularjs中通过在表单元素上使用 ng-model 标签,当用户输入信息时,同步将用户输入的信息赋值给controller中的
变
量
: <body n
见鬼
!PWM 没有输出和串口有啥关系?
来源:公众号【鱼鹰谈单片机】作者:鱼鹰OspreyID :emOsprey标题鱼鹰在做一个项目时,曾经遇到一个问题,8 路 PWM 输出,有一个高级定时器死活无法输出PWM,另一个高级...
python语言的
变
量
特点随时_完美契合人类习惯的Python
变
量
和基本
数据
类型
文|宝哥版权|宝哥有趣又有深度的灵魂,相遇不易,点击‘关注’,让我用最走心的文字,观察世间百态、解析技术奥秘!做科学计算和
数据
分析,
变
量
是始终绕不开的话题。学习程序设计语言,理解了
变
量
相当于掌握了一半。不过,不同编程语言对
变
量
的定义、使用和释放区别很大。Python中的
变
量
到底是什么,该怎么样掌握
变
量
?从我接触的语言中,Python和Matlab几乎是最简单的,特别容易掌握。
变
量
到底是什么
变
量
的概...
数据
类型、
变
量
、操作符
数据
类型、
变
量
、操作符
数据
分类 1.1分类 1.2整形案例 1.3浮点案例 1.4字符型案例 char:数字型,使用’'英文单引号表示,有且只有一个
数据
,占用2字节,16位,范围是0~65535 没有负数 short:短整型 16位 1.5布尔型 java中boolean类型值只有true/false 不是bool 不能参与任何类型转换 主要用于流程控制 内存中占用1字节 1.6类型转换 boolean不参与转换 低到高自动,高到底强制 自动:byte>short>int>l
数据
分类《二》贝叶斯分类
本博客是参考《
数据
仓库与
数据
挖掘技术》以及诸多道友的blog。仅作为自己学习的一个总结。 贝叶斯分类是一种基于统计学的分类方法,可以预测一个类成员关系的可能性。
数据
挖掘主要使用两种分类,朴素贝叶斯和贝叶斯网络方法。前者使用贝叶斯进行预测,后者是一个带有注释的有向无环图,以有效表示大
变
量
集的联合概率分布,适用于分析大量
变
量
之间的相互关系,贝叶斯理论应用于文档分类,医疗诊断,预测,推理和归纳等
数据
挖...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章