OpenEdv-开源电子网

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

结构体数据指针怎么赋值

[复制链接]

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-7-29
在线时间
21 小时
发表于 2018-8-8 17:09:11 | 显示全部楼层 |阅读模式
1金钱

结构体定义

结构体定义

结构体初始化

结构体初始化

结构体赋值

结构体赋值
为什么赋值不正确

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

使用道具 举报

19

主题

246

帖子

0

精华

高级会员

Rank: 4

积分
608
金钱
608
注册时间
2017-9-21
在线时间
171 小时
发表于 2018-8-8 17:32:27 | 显示全部楼层
MMemOry1[0].MenuItem = &cache_data;指针需要的是地址
回复

使用道具 举报

82

主题

589

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1255
金钱
1255
注册时间
2017-11-18
在线时间
296 小时
发表于 2018-8-8 17:39:52 | 显示全部楼层
(1)定义了一个数组MMemory1[7],一共有7个元素
(2)每个数组元素的类型都是MENU_TABLE,因此每个元素下面又包含两种类型的数据
     一种是char *类型,一种是void (*ItemHook)(void),这是一个函数指针,因此赋值时候只能赋值地址
没有脑袋
回复

使用道具 举报

35

主题

560

帖子

2

精华

资深版主

Rank: 8Rank: 8

积分
17786
金钱
17786
注册时间
2018-3-3
在线时间
523 小时
发表于 2018-8-8 18:46:28 | 显示全部楼层
提示什么?
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-7-29
在线时间
21 小时
 楼主| 发表于 2018-8-8 20:37:36 | 显示全部楼层
哆啦A萌 发表于 2018-8-8 17:32
MMemOry1[0].MenuItem = &cache_data;指针需要的是地址

传递过去的字符也是不正确的
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-7-29
在线时间
21 小时
 楼主| 发表于 2018-8-8 20:42:08 | 显示全部楼层
美丽的时光机器 发表于 2018-8-8 17:39
(1)定义了一个数组MMemory1[7],一共有7个元素
(2)每个数组元素的类型都是MENU_TABLE,因此每个元素下 ...

Y94W6SXW%V(`VS3Z5N0`PPP.png 是不是这样写?MMemory1[0].MenuItem的字符不等于0.63。
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4524
金钱
4524
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-8-8 20:54:56 | 显示全部楼层
你楼上列的没有问题呀,
数组名cache_data本身就可以表示地址的,不能再加&的。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-7-29
在线时间
21 小时
 楼主| 发表于 2018-8-8 20:58:57 | 显示全部楼层
warship 发表于 2018-8-8 20:54
你楼上列的没有问题呀,
数组名cache_data本身就可以表示地址的,不能再加&的。

那我怎么才能实现cache_data数组的字符写到MMemory1[0].MenuItem里面呢
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4524
金钱
4524
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-8-8 21:15:42 | 显示全部楼层
MMemory1[0].MenuItem=cache_data;
这样有问题吗?
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2018-8-7
在线时间
14 小时
发表于 2018-8-8 21:19:55 | 显示全部楼层
本帖最后由 默默地掠过 于 2018-8-8 21:28 编辑

你试下cache_data数组用全局变量再试试或者静态局部变量
回复

使用道具 举报

4

主题

133

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3863
金钱
3863
注册时间
2016-6-11
在线时间
710 小时
发表于 2018-8-8 21:24:49 | 显示全部楼层
在51 C中我是这样处理的,&cache_data[0]
回复

使用道具 举报

82

主题

589

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1255
金钱
1255
注册时间
2017-11-18
在线时间
296 小时
发表于 2018-8-8 21:40:21 | 显示全部楼层
yangdehuand 发表于 2018-8-8 20:42
是不是这样写?MMemory1[0].MenuItem的字符不等于0.63。

不用取地址符号了,数组名就是数组首元素的地址
没有脑袋
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-7-29
在线时间
21 小时
 楼主| 发表于 2018-8-8 21:54:34 | 显示全部楼层
美丽的时光机器 发表于 2018-8-8 21:40
不用取地址符号了,数组名就是数组首元素的地址

char cache_data把定义成char xdata cache_data赋值就正常了
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-7-29
在线时间
21 小时
 楼主| 发表于 2018-8-8 21:55:44 | 显示全部楼层
默默地掠过 发表于 2018-8-8 21:19
你试下cache_data数组用全局变量再试试或者静态局部变量

改成外部内存变量就正常了
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-7-29
在线时间
21 小时
 楼主| 发表于 2018-8-8 21:56:20 | 显示全部楼层
jxcrgt35 发表于 2018-8-8 21:24
在51 C中我是这样处理的,&cache_data[0]

这样我这部分程序无法运行
回复

使用道具 举报

1

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-7-29
在线时间
21 小时
 楼主| 发表于 2018-8-8 21:59:40 | 显示全部楼层
美丽的时光机器 发表于 2018-8-8 21:40
不用取地址符号了,数组名就是数组首元素的地址

改成xdata就正常,不知道原因是什么,ddata又还有,还没用完,
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-13 10:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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