OpenEdv-开源电子网

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

如何将动态申请到的内存,赋予某个变量?

[复制链接]

28

主题

91

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2132
金钱
2132
注册时间
2014-11-18
在线时间
215 小时
发表于 2016-3-18 18:12:32 | 显示全部楼层 |阅读模式
1金钱
如何将动态申请到的内存,赋予某个变量?

求指导,谢谢!

最佳答案

查看完整内容[请看2#楼]

u8 *arm = mymalloc(SRAMIN,SIZE); //申请工作程序参数内存 MZJG_MZCLGZCSB *const P = (MZJG_MZCLGZCSB *)arm;//定义一个程序结构数据指针(首地址指向申请内存的首地址) P的首地址就是你申请内存的首地址 MZJG_MZCLGZCSB 这是结构数据名称 P = (MZJG_MZCLGZCSB *) arm ;需强制转换指针类型(这里要注意一下)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3347
金钱
3347
注册时间
2013-4-10
在线时间
333 小时
发表于 2016-3-18 18:12:33 | 显示全部楼层
本帖最后由 likunxue 于 2016-3-19 02:26 编辑

u8 *arm = mymalloc(SRAMIN,SIZE);   //申请工作程序参数内存
MZJG_MZCLGZCSB *const P = (MZJG_MZCLGZCSB *)arm;//定义一个程序结构数据指针(首地址指向申请内存的首地址)

P的首地址就是你申请内存的首地址
MZJG_MZCLGZCSB  这是结构数据名称

P = (MZJG_MZCLGZCSB *) arm ;需强制转换指针类型(这里要注意一下)
回复

使用道具 举报

28

主题

91

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2132
金钱
2132
注册时间
2014-11-18
在线时间
215 小时
 楼主| 发表于 2016-3-18 18:16:10 | 显示全部楼层
补充一下,是结构体类型的变量
回复

使用道具 举报

28

主题

91

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2132
金钱
2132
注册时间
2014-11-18
在线时间
215 小时
 楼主| 发表于 2016-3-21 09:20:34 | 显示全部楼层
likunxue 发表于 2016-3-18 18:12
u8 *arm = mymalloc(SRAMIN,SIZE);   //申请工作程序参数内存
MZJG_MZCLGZCSB *const P = (MZJG_MZCLGZCS ...

这里为什么要用const修饰?
回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3347
金钱
3347
注册时间
2013-4-10
在线时间
333 小时
发表于 2016-3-21 14:19:12 | 显示全部楼层
freeelectron 发表于 2016-3-21 09:20
这里为什么要用const修饰?

这里的修饰是仿止指针被改动,  这样加修饰后,指针的值不可改,但指针指向的针是可读可写的,出于安全考虑
回复

使用道具 举报

28

主题

91

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2132
金钱
2132
注册时间
2014-11-18
在线时间
215 小时
 楼主| 发表于 2016-3-22 09:43:14 | 显示全部楼层
likunxue 发表于 2016-3-21 14:19
这里的修饰是仿止指针被改动,  这样加修饰后,指针的值不可改,但指针指向的针是可读可写的,出于安全考虑

学习了,谢谢!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 20:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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