`

程序中变量自动改变的问题

阅读更多

原文及更多内容:http://yysource.sourceforge.net/?p=99

程序中的变量,有时会被莫名奇妙地改变。之前明明是111,在某个函数过后可能就变成31348了。

很可能是因为程序中的其他变量(比如字符串)写入超出范围了,但是由于超出的部分刚好是本程序的其他变量所在的内存空间,

所以系统不会报错。但是你其他的变量就这样不幸地“被改变”了。


比如,在读取文件内容的时候,往往需要循环读取,直到不能再读

……定义变量……

char contents[255];

int i = 0;

……各种无关函数纷纷路过……

while (ReadFile(hFile, contents + strlen(contents)255, NULL, NULL))) {}

假设读了第一次后, strlen(contents) == 200 ,还可以再读。那么这次真的读到了 255 个字节,

而此时 contents 只剩下 55 字节可以装了……于是,多出来的部分全部硬塞到 i,以及i后面的变量中去了。

0
1
分享到:
评论

相关推荐

    TIA博途软件中如何设置在程序中自动显示变量的注释信息?.docx

    TIA博途软件中如何设置在程序中自动显示变量的注释信息?

    JavaScript程序设计课件:变量.pptx

    使用该关键字声明变量后,计算机会自动为变量分配内存空间,不需要程序员来管 空格,分隔变量名和关键词的,必须有 变量名,起一个名字来代替后面的值 =,在js里面等号是赋值的意思,把右边的内容给到左边 值,定义...

    WPF数据绑定:将一个变量绑定到一个控件,控件内容随变量的变化而变化

    WPF的数据绑定功能非常强大,在控件中使用数据绑定功能会为你节省大量的处理...本示例中,将一个变量绑定到一个控件上,在代码中改变变量值,并立刻引起控件值的变化。此代码经过删减,仅仅保留精简内容,一看就懂。

    TIA博途中触摸屏如何通过按钮对变量进行赋值操作?.docx

    TIA博途中触摸屏如何通过按钮对变量进行赋值操作?

    C语言程序设计标准教程

    因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。例5.3可以说明这个问题。 void main() { int n; printf("input number\n"); scanf("%d",&n); s(n); printf("n=%d\n",n); } int s(int n) { int i; ...

    数控宏程序

    用户宏程序是以变量的组合,通过各种算术和逻辑运算,转移和循环等命令,而编制的一种可以灵活运用的程序,只要改变变量的值,即可完成不同的加工或操作,只要改变变量的值,即可完成不同的加工或操作。用户宏程序...

    C语言程序设计(PDF格式)

    9.3.2 自动识谱音乐程序 200 9.3.3 实现后台演奏音乐的技巧 203 第10章 C++入门 205 10.1 面向对象的概念 205 10.1.1 面向对象的程序结构 205 10.1.2 C++的类 206 10.2 C++的输入与输出 207 10.3 类与对象 208 ...

    环境变量编辑器(RapidEE)9.1.936单文件便携版

    检查器显示有关变量的各种信息:名称、类型、值、在 8.3 命名约定中的每个长文件名的短文件名称,反之亦然。 静默安装: RapidEE 支持静默安装模式,这对于自动执行此进程非常有用。 命令行: RapidEE 可接受多个...

    C语言程序设计(高清PDF)

    9.3.2 自动识谱音乐程序 200 9.3.3 实现后台演奏音乐的技巧 203 第10章 C++入门 205 10.1 面向对象的概念 205 10.1.1 面向对象的程序结构 205 10.1.2 C++的类 206 10.2 C++的输入与输出 207 10.3 类与对象 208 ...

    《C语言程序设计》-PDF格式

    9.3.2 自动识谱音乐程序 200 9.3.3 实现后台演奏音乐的技巧 203 第10章 C++入门 205 10.1 面向对象的概念 205 10.1.1 面向对象的程序结构 205 10.1.2 C++的类 206 10.2 C++的输入与输出 207 10.3 类与对象 208 ...

    如何理解Python中的变量

    python中的变量不需要指明类型,系统会自动识别 内容扩展: 变量命名 1、下划线或大小写字母开头,后面可跟下划线、大小写字母和数字任意组合(但一般以下划线开头具有特殊含义,不建议使用) 2、推荐使用具有固定...

    Excel_VBA程序设计.pdf

    1.2 EXCEL环境中基于应用程序自动化的优点 9 1.3 录制简单的宏 9 1.4 执行宏 10 1.5 查看录制的代码 10 1.6 编辑录制的代码 11 1.7 录制宏的局限性 12 1.8 小结 12 第二课 处理录制的宏 12 2.1 为宏指定快捷键 12 ...

    GDB调试完整文档

    二、程序变量 三、数组 四、输出格式 五、查看内存 六、自动显示 七、设置显示选项 八、历史记录 九、GDB环境变量 十、查看寄存器 十四、改变程序的执行 一、修改变量值 二、跳转执行 三、产生信号量 四...

    窗口组件随窗口大小改变自适应大小位置V3.15

    如编辑框定左顶高变宽,按钮定宽高顶变左.2>如题,论坛和百度里面找了很多改变窗口大小组件自动调整的代码,均没有有效的解决方案.3>来源:本程序借鉴论坛部分源码,经过消化整理而成.4>组成:需要精易模块V5以上,无需Dll,...

    windows 程序设计中文版

    10.2.5 菜单和消息 10.2.6 范例程序 10.2.7 菜单设计中的规范 10.2.8 定义菜单的繁琐方式 10.2.9 浮动弹出菜单 10.2.1 0使用系统菜单 10.2.1 1改变菜单 10.2.1 2其他菜单命令 10.2.1 3菜单的另类用法 10.3 键盘加速...

    计算机程序设计的要点与规范分析-.docx

    2.3 掌握C语言的自增和自减运算符要点 在C语言表达式中,如果出现自增或自减运算符,一般比拟容易改变表达式中变量值,或者弄错其值的计算。主要的改变如下: 如果是前缀自增或自减,就是运算符在使用前自动增加或...

    C语言程序设计.rar

    9.3.2 自动识谱音乐程序 200 9.3.3 实现后台演奏音乐的技巧 203 第10章 C++入门 205 10.1 面向对象的概念 205 10.1.1 面向对象的程序结构 205 10.1.2 C++的类 206 10.2 C++的输入与输出 207 10.3 类与对象 208 ...

Global site tag (gtag.js) - Google Analytics