OpenEdv-开源电子网

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

malloc申请的地址内容不可被修改,为什么

[复制链接]

10

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2016-8-5
在线时间
57 小时
发表于 2016-9-2 13:31:20 | 显示全部楼层 |阅读模式
1金钱
我调用malloc给OUT分配3字节地址长度,然后给OUT地址赋值,但是实际上我赋值没赋进去,然后我尝试了下不用指针ptr给它赋值,直接给常量,还是没赋进去,然后我定义了个char类型的数组,然后把数组的地址取过来给OUT,然后OUT地址里的内容是可以被修改的,为什么malloc申请的地址内容不可被修改?求原子哥解答下,而且仿真看了下OUT的首地址为0X0200D1,我的单片机RAM是4k的。

OUT不可被修改

OUT不可被修改

另外申请数组SS,然后把地址给OUT,地址内容可被修改

另外申请数组SS,然后把地址给OUT,地址内容可被修改
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2016-8-5
在线时间
57 小时
 楼主| 发表于 2016-9-2 13:32:06 | 显示全部楼层

我调用malloc给OUT分配3字节地址长度,然后给OUT地址赋值,但是实际上我赋值没赋进去,然后我尝试了下不用指针ptr给它赋值,直接给常量,还是没赋进去,然后我定义了个char类型的数组,然后把数组的地址取过来给OUT,然后OUT地址里的内容是可以被修改的,为什么malloc申请的地址内容不可被修改?求原子哥解答下
回复

使用道具 举报

4

主题

290

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1130
金钱
1130
注册时间
2015-8-4
在线时间
107 小时
发表于 2016-9-2 16:35:30 | 显示全部楼层
代码又不贴全,怎么判断啊?
看一下你的while里面的If是不是根本没执行。。
活到老,学到老。
回复

使用道具 举报

10

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2016-8-5
在线时间
57 小时
 楼主| 发表于 2016-9-2 18:02:45 | 显示全部楼层
kingnike 发表于 2016-9-2 16:35
代码又不贴全,怎么判断啊?
看一下你的while里面的If是不是根本没执行。。

赋上代码
QQ图片20160902180025.png
QQ图片20160902180048.png
QQ图片20160902180229.png
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-9-3 20:31:33 | 显示全部楼层
被优化了吧,不要用-O2优化(default也不行),直接用-O0优化
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-26 00:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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