OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2633|回复: 8

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

[复制链接]

24

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2017-11-6
在线时间
42 小时
发表于 2018-11-12 11:40:59 | 显示全部楼层 |阅读模式
1金钱
求教一个问题,我在A函数声明了一个x变量,然后将这个变量的地址作为指针参数y调用并传入B函数。B函数里面调用了C函数,在调用此函数之前,指针y存的是变量x的地址,是没错的。然后调用了C函数并返回后,y存储的地址改变了,并且这个地址已不在堆栈范围内。这是怎么回事?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

169

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2018-4-21
在线时间
107 小时
发表于 2018-11-12 13:01:42 | 显示全部楼层
你函数干什么了?上程序看看
回复

使用道具 举报

15

主题

317

帖子

0

精华

高级会员

Rank: 4

积分
863
金钱
863
注册时间
2015-2-12
在线时间
354 小时
发表于 2018-11-12 13:27:46 | 显示全部楼层
void fun_c(void);
{

}

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

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

}

这样??
回复

使用道具 举报

24

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2017-11-6
在线时间
42 小时
 楼主| 发表于 2018-11-12 13:39:42 | 显示全部楼层

是的。
回复

使用道具 举报

11

主题

1044

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3722
金钱
3722
注册时间
2011-5-23
在线时间
2013 小时
发表于 2018-11-12 13:54:02 | 显示全部楼层
学会下写断点
RT-Thread RTOS 音频,WIFI,蓝牙
回复

使用道具 举报

82

主题

589

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1255
金钱
1255
注册时间
2017-11-18
在线时间
296 小时
发表于 2018-11-12 16:23:01 | 显示全部楼层
函数C会去操作变量x或者参数y吗?可以的话贴一下代码我们分析一下
没有脑袋
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-11-13 02:05:16 | 显示全部楼层
返回一个局部变量的地址,本身就有问题,就不应该这么写代码
回复

使用道具 举报

2

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2018-5-14
在线时间
69 小时
发表于 2018-11-13 21:00:03 | 显示全部楼层
正点原子 发表于 2018-11-13 02:05
返回一个局部变量的地址,本身就有问题,就不应该这么写代码

我觉得这才是问题的关键。这样写代码早晚会出问题。
回复

使用道具 举报

8

主题

89

帖子

0

精华

高级会员

Rank: 4

积分
686
金钱
686
注册时间
2017-8-8
在线时间
494 小时
发表于 2018-11-13 23:14:01 | 显示全部楼层
不能返回局部变量的指针,返回的是指针的拷贝但是指针指向的对象销毁了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 22:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表