(1) unsigned int (*frameBuffer256)[SCR_XSIZE/4]; 其中SCR_XSIZE=320 (2) frameBuffer256=(unsigned int (*)[SCR_XSIZE/4])malloc(ARRAY_SIZE_COLOR)); /////ARRAY_SIZE_COLOR=320*240
注:以上代码没有问题,只是我不理解它们之间的匹配问题! (1)应该是个指针数组,我觉得(1)中应该改为320*240,不理解,那位大虾指点啊!
也就是说这个unsigned int (*frameBuffer256)[SCR_XSIZE/4];
仅仅是定义了指向一行屏幕数据数组的指针变量,由于malloc动态分配一块连续的内存,
所以基于指针frameBuffer256,就可以找到显示帧数据中的任何一个数据!
大虾,这样理解对吗?
frameBuffer256 相当于指向一维数组的指针,
malloc(ARRAY_SIZE_COLOR)又相当于二维数组,320*240,
frameBuffer256有320/4个int元素,也就是320个字节,实际上相当于指向0行,
*(frameBuffer256+1)指向第1行,*(frameBuffer256+2)指向第21行,
注意,这里*(frameBuffer256+1)等同于(frameBuffer256+1)。
*(frameBuffer256+i)+ j 指向i 行j 列。