| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1169 人关注过本帖
标题:诡异?子函数为什么会改变调用它函数的变量
取消只看楼主 加入收藏
lebronze
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2016-5-25
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:0 
诡异?子函数为什么会改变调用它函数的变量
写了一个程序,老是报错,后面单步调试发现问题出在:调用子函数时,子函数执行完,结果调用它的函数中的变量居然变了??

下面是部分代码:
程序代码:
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循环里就一句话也没错,想不通啊
还望各位高手指导指导
2016-07-18 17:13
快速回复:诡异?子函数为什么会改变调用它函数的变量
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019161 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved