h*****n 发帖数: 209 | 1 【 以下文字转载自 Programming 讨论区 】
发信人: hanuman (神猴), 信区: Programming
标 题: 程序中的各个变量/数组的内存地址是否会混在一起?
发信站: BBS 未名空间站 (Sun Dec 19 01:03:09 2010, 美东)
比如说一个C程序内有很多int型的变量,还有一些int 或 char的数组,
有时候我发现这些变量的内存地址有可能和这些数组的地址混在一起了,这样就导致了
一些莫名其妙的bug。
不知道这是由于compiler的问题,还是程序本身没设计好。
我想版上的高手应该也经历过类似的问题。那么如何预防这种bug呢? |
B***i 发帖数: 724 | |
z*****n 发帖数: 7639 | 3 你明确声明的变量都不会冲突。
除非那编译器也是你自己写的。
【在 h*****n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 【 以下文字转载自 Programming 讨论区 】 : 发信人: hanuman (神猴), 信区: Programming : 标 题: 程序中的各个变量/数组的内存地址是否会混在一起? : 发信站: BBS 未名空间站 (Sun Dec 19 01:03:09 2010, 美东) : 比如说一个C程序内有很多int型的变量,还有一些int 或 char的数组, : 有时候我发现这些变量的内存地址有可能和这些数组的地址混在一起了,这样就导致了 : 一些莫名其妙的bug。 : 不知道这是由于compiler的问题,还是程序本身没设计好。 : 我想版上的高手应该也经历过类似的问题。那么如何预防这种bug呢?
|
m*****g 发帖数: 226 | |
L**********1 发帖数: 797 | 5 是不是要内存管理的模式?
如果使用了虚拟内存应该不会有问题吧? |
h******s 发帖数: 728 | 6 post your code.
【在 h*****n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 【 以下文字转载自 Programming 讨论区 】 : 发信人: hanuman (神猴), 信区: Programming : 标 题: 程序中的各个变量/数组的内存地址是否会混在一起? : 发信站: BBS 未名空间站 (Sun Dec 19 01:03:09 2010, 美东) : 比如说一个C程序内有很多int型的变量,还有一些int 或 char的数组, : 有时候我发现这些变量的内存地址有可能和这些数组的地址混在一起了,这样就导致了 : 一些莫名其妙的bug。 : 不知道这是由于compiler的问题,还是程序本身没设计好。 : 我想版上的高手应该也经历过类似的问题。那么如何预防这种bug呢?
|
b*******t 发帖数: 79 | 7 变量是函数的变量还是全局的呢
函数的变量放在stack,有可能stack overflow. 你最好debug跟踪下
GCC和VC8在stack放了canary word(VC编译的/GS选项) |
c**b 发帖数: 2999 | 8 memory overflow.
比如一个int型变量值太大.
【在 h*****n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 【 以下文字转载自 Programming 讨论区 】 : 发信人: hanuman (神猴), 信区: Programming : 标 题: 程序中的各个变量/数组的内存地址是否会混在一起? : 发信站: BBS 未名空间站 (Sun Dec 19 01:03:09 2010, 美东) : 比如说一个C程序内有很多int型的变量,还有一些int 或 char的数组, : 有时候我发现这些变量的内存地址有可能和这些数组的地址混在一起了,这样就导致了 : 一些莫名其妙的bug。 : 不知道这是由于compiler的问题,还是程序本身没设计好。 : 我想版上的高手应该也经历过类似的问题。那么如何预防这种bug呢?
|
w********r 发帖数: 14958 | 9 都是一锅粥了,程序还跑个P阿。
【在 h*****n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 【 以下文字转载自 Programming 讨论区 】 : 发信人: hanuman (神猴), 信区: Programming : 标 题: 程序中的各个变量/数组的内存地址是否会混在一起? : 发信站: BBS 未名空间站 (Sun Dec 19 01:03:09 2010, 美东) : 比如说一个C程序内有很多int型的变量,还有一些int 或 char的数组, : 有时候我发现这些变量的内存地址有可能和这些数组的地址混在一起了,这样就导致了 : 一些莫名其妙的bug。 : 不知道这是由于compiler的问题,还是程序本身没设计好。 : 我想版上的高手应该也经历过类似的问题。那么如何预防这种bug呢?
|
z*****n 发帖数: 7639 | 10 请教一下:啥叫“一个int型的变量值太大”?
【在 c**b 的大作中提到】![](/moin_static193/solenoid/img/up.png) : memory overflow. : 比如一个int型变量值太大.
|
w********r 发帖数: 14958 | 11 他的意思就是,类似一个未赋初值得int, 通常随即值都是上亿。
【在 z*****n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 请教一下:啥叫“一个int型的变量值太大”?
|
M**u 发帖数: 10158 | 12 好好回去学写程序是正道
【在 h*****n 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 【 以下文字转载自 Programming 讨论区 】 : 发信人: hanuman (神猴), 信区: Programming : 标 题: 程序中的各个变量/数组的内存地址是否会混在一起? : 发信站: BBS 未名空间站 (Sun Dec 19 01:03:09 2010, 美东) : 比如说一个C程序内有很多int型的变量,还有一些int 或 char的数组, : 有时候我发现这些变量的内存地址有可能和这些数组的地址混在一起了,这样就导致了 : 一些莫名其妙的bug。 : 不知道这是由于compiler的问题,还是程序本身没设计好。 : 我想版上的高手应该也经历过类似的问题。那么如何预防这种bug呢?
|
z*****n 发帖数: 7639 | 13 这个memory overflow有啥关系?
【在 w********r 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 他的意思就是,类似一个未赋初值得int, 通常随即值都是上亿。
|