我在调试程序时遇到了一个问题。
我正在尝试将整数变量传递给同一程序中的函数。当函数接收到该值时,函数内的接收变量的值有所不同,我只是找不到原因。
下面是调用函数的行。
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.
我哪里错了?
答案 0 :(得分:0)
检查是否在全局变量之前定义了某种数组,并且在覆盖数组大小之外覆盖它,从而更改变量地址的值。顺便说一下,如果地址是全局变量,为什么需要将它传递给例程呢?全局变量对所有例程都可见。