变量定义出错,导致程序跑飞。请教下原因。

2020-01-23 14:23发布

unsigned char dis[6];
void send_printf(int value)
{
        unsigned char i;
        printf(dis , value);
        for(i=0;i<6;i++)
        {
                SendData(dis[i]);
        }
}
为了省事,直接在函数的上面把变量定义了。printf(dis , value);  dis传递的是指针变量,就是数组的地址。
但是在调试的时候,发现程序运行,老是出问题。于是 unsigned char dis[6];放到程序的开头就好了。
呵呵,问题是找到了,但是具体的原因还不是很清楚,所以想问问大家。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
iquer
1楼-- · 2020-01-23 17:41
楼主描述的清楚一点……
tohell
2楼-- · 2020-01-23 19:13
这printf是什么用法
dis做全局变量,被初始化为0,相当于空字符串,printf啥都没做
dis做局部变量,那里面是什么就不知道了
煮酒fu
3楼-- · 2020-01-23 21:04
 精彩回答 2  元偷偷看……
zhugean
4楼-- · 2020-01-24 01:56
堆栈溢出!!!!!!!!!!!!!
煮酒fu
5楼-- · 2020-01-24 05:49
zhugean 发表于 2014-8-12 15:54
堆栈溢出!!!!!!!!!!!!!

能详细说几句不?
maimaige
6楼-- · 2020-01-24 10:33
是不是编译器给优化了,把优化选项去掉看看

一周热门 更多>