当我将它传递给函数时,变量的值会发生变化

时间:2014-02-19 23:12:00

标签: c

我在调试程序时遇到了一个问题。

我正在尝试将整数变量传递给同一程序中的函数。当函数接收到该值时,函数内的接收变量的值有所不同,我只是找不到原因。

下面是调用函数的行。

prefetch_miss(addr,pref_m,sbuff,0,evict_row, SB);

下面是接收函数的3行。

void prefetch_miss(int address, int m, s **sbuff, int next, int r, cache *b) {

int index_value=0, tag_value=0;
address = address + 1;

请注意,addr是一个全局变量。在调试中,我可以在函数调用之前看到addr的值为33558587.在函数内部,地址的值是33558569.

我哪里错了?

1 个答案:

答案 0 :(得分:0)

检查是否在全局变量之前定义了某种数组,并且在覆盖数组大小之外覆盖它,从而更改变量地址的值。顺便说一下,如果地址是全局变量,为什么需要将它传递给例程呢?全局变量对所有例程都可见。