OpenEdv-开源电子网

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

关于u8 *Menu[2]这样的指针数组疑问。走过路过不要错过

[复制链接]

27

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
472
金钱
472
注册时间
2011-11-2
在线时间
11 小时
发表于 2011-12-22 17:09:53 | 显示全部楼层 |阅读模式
定义一个u8 *Menu[2]={“ni hao”,"wo hen hao "};
为什么不能直接进行赋值  只能通过再定义一个
U8 Menu_two[2][100]={"bu hao","我很好"}这样的数组
 然后将指针指向它的地址
Menu[1]=Menu_two[1];
Menu[1]=Menu_two[2];
也不知道说明白了没有。
有没有高手可以直接进行赋值?
就是把Menu里面的字符串进行修改!
难道这就要用到传说中的申请内存空间?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-12-22 18:38:42 | 显示全部楼层
u8 * menu[2]={"nihao","wo hen hao"};
表示无任何错误。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

27

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
472
金钱
472
注册时间
2011-11-2
在线时间
11 小时
 楼主| 发表于 2011-12-22 21:22:21 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
初始化的时候是可以直接定义,但是如果初始化以后要怎么样对其值进行修改呢,我指针比较差。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-12-22 21:53:55 | 显示全部楼层
回复【3楼】zenghi:
--------------------------------
那如果想在运行中修改.
1,定义大数组,确保任何一次赋值都不超过最大长度.
2,使用malloc动态申请内存.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

27

主题

274

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
472
金钱
472
注册时间
2011-11-2
在线时间
11 小时
 楼主| 发表于 2011-12-22 21:58:40 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
真的要申请内存,上次用到你自己写的malloc  弄得稀里糊涂的,现在再试试看,指针啊指针。。。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-12-23 08:44:26 | 显示全部楼层
回复【5楼】zenghi:
---------------------------------
我那个malloc(其实不是我写的,呵呵)其实很好理解,就是把一个连续的内存区分为N段,每段固定M个字节。然后有一个记录表,记录每个段是否被占用,分配的时候以M个字节为单位(也就是一段),最少分配一段,哪怕你只申请一个字节,其实也是分配了M个字节的。然后在记录表里面记录了所有段的使用情况,分配了的就标记一个值X,未分配的就标记另一个值Y,这样就实现了内存管理了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

39

主题

597

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2115
金钱
2115
注册时间
2011-9-3
在线时间
121 小时
发表于 2011-12-23 12:56:47 | 显示全部楼层
回复【6楼】正点原子:

---------------------------------
原子兄不錯,這個是OS內存管理的方法。這樣管理內存的好處就是可以容易申請到一段連續空間的內存。
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2011-12-23 13:46:34 | 显示全部楼层
高端,二维数组的指针表示方法。
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

3

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2011-12-23
在线时间
5 小时
发表于 2011-12-23 17:20:17 | 显示全部楼层
坏处是容易产生碎片,这就是为什么有了malloc这样的函数,还是有很多人自己写内存分配函数的原因。对于stm32这种芯片还是建议用静态内存吧,毕竟系统不会很大。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 17:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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