求教一个问题,我在A函数声明了一个x变量,然后将这个变量的地址作为指针参数y调用并传入B函数。B函数里面调用了C函数,在调...

2019-07-21 08:00发布

求教一个问题,我在A函数声明了一个x变量,然后将这个变量的地址作为指针参数y调用并传入B函数。B函数里面调用了C函数,在调用此函数之前,指针y存的是变量x的地址,是没错的。然后调用了C函数并返回后,y存储的地址改变了,并且这个地址已不在堆栈范围内。这是怎么回事?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
学习STM32F103
1楼-- · 2019-07-21 09:12
 精彩回答 2  元偷偷看……
csmjmcc
2楼-- · 2019-07-21 09:31
void fun_c(void);
{

}

void fun_b(u8 * y);
{
     fun_c();
}

void fun_a(void)
{
     u8 x;
   
    fun_b(&x);

}

这样??
CeleronN3150
3楼-- · 2019-07-21 10:15
csmjmcc 发表于 2018-11-12 13:27
void fun_c(void);
{

是的。
aozima
4楼-- · 2019-07-21 15:31
学会下写断点
美丽的时光机器
5楼-- · 2019-07-21 19:13
函数C会去操作变量x或者参数y吗?可以的话贴一下代码我们分析一下
正点原子
6楼-- · 2019-07-22 00:32
 精彩回答 2  元偷偷看……

一周热门 更多>