打印
[应用相关]

关于内存管理 C语言的问题

[复制链接]
854|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
迪卡|  楼主 | 2017-4-29 19:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

if(!mallco_dev.memmap[memx][offset])cmemb++;//连续空内存块数增加
这句话我看不懂,怎么memmap是个二维数组了
u16 *memmap[SRAMBANK];   
这是前面定义的,是个数组指针
沙发
米尔豪斯| | 2017-4-29 19:42 | 只看该作者
指针和数组在某种程度上是等价的,在大多数情况都可以互换表示。例如说:
*(p+1)等价于p[1]

使用特权

评论回复
板凳
lefeng| | 2017-4-29 19:54 | 只看该作者
虽然在访问的时候表达式可以互换,但是在定义的时候却不能混淆

使用特权

评论回复
地板
lwsn| | 2017-4-29 20:06 | 只看该作者
指针和数组的意义确实完全不同的。
memmap并不是二维数组,只是他可以以二维数组的方式去访问指针

使用特权

评论回复
5
309030106| | 2017-4-29 20:20 | 只看该作者
是不是memmap[memx]是个一维数组的地址,然后再加个【】去表达它的二维

使用特权

评论回复
6
xixi2017| | 2017-4-29 20:30 | 只看该作者
看那个数组的参数就明白,另外一个维度为偏移量。

使用特权

评论回复
7
尤彼卡| | 2017-4-29 20:35 | 只看该作者
memmap[memx]是一个指针,可以继续用*或者[]访问,都行

使用特权

评论回复
8
Levenburg| | 2017-4-29 20:46 | 只看该作者
本质上都是地址和内容,如何使用地址和内容--就衍生出各种各样的形式,这些形式确实很迷惑人的。

使用特权

评论回复
9
Thorald| | 2017-4-29 20:58 | 只看该作者
建议 对照c和对应的反汇编 一起看,可能就明白地快些了。
先学会嵌入系统指令中的各种寻址方式,就更好了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

109

主题

650

帖子

1

粉丝