诡异?子函数为什么会改变调用它函数的变量
写了一个程序,老是报错,后面单步调试发现问题出在:调用子函数时,子函数执行完,结果调用它的函数中的变量居然变了??下面是部分代码:
程序代码:
void data_pre(int *voice_data, long data_size, short framelen) //函数原型 //部分函数内容: pre_emp[0]=(float)voice_data[0]; for (i=1;i<data_size;i++) { pre_emp[i]=(float)(voice_data[i]-0.97*voice_data[i-1]); }
就执行了上面的for循环,结果发现data_size,framelen这些传进来的变量值居然变了,而且变得很大。。。
百思不得其解,子函数怎么能改变调用它的函数中的变量??没见过这种问题
数组越界,内存泄露的问题都不存在,for循环里就一句话也没错,想不通啊
还望各位高手指导指导