独闷闷网

标题: 在函数中,怎么样能通过一个指针形参把二维数组传递进去?已解答。 [打印本页]

作者: jianhong_wu    时间: 2014-10-22 12:09
标题: 在函数中,怎么样能通过一个指针形参把二维数组传递进去?已解答。
本帖最后由 jianhong_wu 于 2015-8-29 14:05 编辑

问:
在函数中,怎么样能通过一个指针形参把二维数组传递进去?

★坚鸿-深圳:
请看以下范例,注意:二维数组与指针匹配,必须要列数一致,比如上述例子unsigned char (*p)[5]的5与数组列数对应的5一致,当然我测试了一下,在keil的C51平台即使不匹配也能编译通过,但是在IAR针对stm8单片机的编译器,如果不匹配则编译不能通过。它不像一维数组和指针,不需要限定列数。


  1. #include "REG52.H"

  2. void test(unsigned char (*p)[5]);

  3. unsigned char ucErWeiBuffer[4][5];//定义一个二维数组


  4. void main() //主程序
  5. {
  6. test(ucErWeiBuffer) ; //通过二维指针调用二维数组
  7. while(1)
  8. {
  9. ;
  10. }

  11. }

  12. void test(unsigned char (*p)[5]) //注意,此处的二维指针的5必须跟数组的列数5一致
  13. {
  14. p[0][1]=2;
  15. p[0][2]=3;
  16. p[3][4]=5;
  17. }

复制代码






欢迎光临 独闷闷网 (http://dumenmen.com/) Powered by Discuz! X3.2