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

2019-03-23 17:50发布

if(!mallco_dev.memmap[memx][offset])cmemb++;//连续空内存块数增加
这句话我看不懂,怎么memmap是个二维数组了
u16 *memmap[SRAMBANK];   
这是前面定义的,是个数组指针
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
lcofjp
1楼-- · 2019-03-24 02:41
/ 指针和数组在某种程度上是等价的,在大多数情况都可以互换表示。例如说:
*(p+1)等价于p[1]
lcofjp
2楼-- · 2019-03-24 05:36
 精彩回答 2  元偷偷看……
大家都是好朋友
3楼-- · 2019-03-24 06:49
lcofjp 发表于 2017-1-26 11:33
虽然在访问的时候表达式可以互换,但是在定义的时候却不能混淆,指针和数组的意义确实完全不同的。
所以说 ...

是不是memmap[memx]是个一维数组的地址,然后再加个【】去表达它的二维。
我看书只看过二维数组用指针的转换表达,没见过,指针数组可以表达指针的二维。。

lcofjp
4楼-- · 2019-03-24 09:34
大家都是好朋友 发表于 2017-1-26 11:47
是不是memmap[memx]是个一维数组的地址,然后再加个【】去表达它的二维。
我看书只看过二维数组用指针的 ...

你的理解差不多
memmap[memx]是一个指针,可以继续用*或者[]访问,都行。
大家都是好朋友
5楼-- · 2019-03-24 10:17
 精彩回答 2  元偷偷看……
白丁
6楼-- · 2019-03-24 11:14
鬼子写的一本《征服C指针》不错,可以买来看一下,网上也有电子版

一周热门 更多>