webkit_
2016-05-17 16:48
采纳率: 50%
浏览 3.2k

c语言三维数组做函数输入变量,函数的形参怎么写?

比如uint8_t cube[5][5][5];要在函数内处理数组内的数据并能返回值,肯定是传入三维数组的地址。函数定义时形参不知道怎么写才行??void process(uint8_t ????);

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • lm_whales 2016-05-29 05:11
    已采纳

    1)void process(uint8_t cube[5][5][5]);
    2)void process(uint8_t cube[][5][5]);
    3)void process(uint8_t (cube*)[5][5]); ///1)<==>2)<==>3)
    4)void process(uint8_t *cube,int m,int n,int r); //这种方式最灵活
    process(cube[0][0],5,5,5);
    或者
    process(&cube[0][0][0],5,5,5); 如果觉得 这两种写法不方便,可以强制转换
    process((uint8_t *)(void *)cube,5,5,5);

    点赞 评论
  • blownewbee 2016-05-17 16:50

    用uint8_t * cube就可以了。

    点赞 评论
  • shiter 2016-05-17 17:05

    需要用指针不然改的都是形参的临时内容,或者直接操作全局变量

    点赞 评论
  • wangjileishang 2016-05-18 01:45

    其实传入一个地址指针就可以实现数据同步了。*(&cube)

    点赞 评论

相关推荐 更多相似问题