【问题标题】:Copy two dimensional arrays using pointers使用指针复制二维数组
【发布时间】:2014-06-20 01:47:54
【问题描述】:

我想复制二维数组,我做了这个函数但是导致编译错误

void Cpy_2d_arr(unsigned char *from,unsigned char *to)
{
    unsigned char col,row;
    for (row=0;row<4;row++)
    {
        for(col=0;col<4;col++)
        {
            (*(*(to+row)+col)) = (*(*(from+row)+col));
        }
    }

}

二维数组是 unsigned char arr[4][4] = {'7','8','9','-','4','5','6','*','1','2' ,'3','-','c','0','=','+'};

目标是一个大小相同的结构体中的数组

错误是: 1- 错误 8 预期为 'unsigned char ' 但参数类型为 'unsigned char ()[4] 2- 错误 11 下标值既不是数组也不是指针 3- 错误 11 一元 '*' 的无效类型参数(有 'int')

【问题讨论】:

  • 如果您对编译错误有任何疑问,您应该始终发布错误消息
  • 为什么用objective-c和C标记?
  • 另外,如果你使用to[row][col]而不是嵌套解引用,这段代码会更容易理解。
  • 二维数组在哪里?它们的尺寸是多少?

标签: objective-c c arrays embedded


【解决方案1】:
 char arr[4][4] = {'7','8','9','-','4','5','6','*','1','2','3','-','c','0','=','+'};

是一个指针数组

void Cpy_2d_arr(unsigned char *from,unsigned char *to)

接收单个指针(例如指向字符数组)。

你的参数类型不兼容,改成

void Cpy_2d_arr(unsigned char from[4][4],unsigned char to[4][4]) 

应该没问题

【讨论】:

  • 这能回答你的问题吗?
猜你喜欢
  • 2018-04-18
  • 2011-11-27
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
相关资源
最近更新 更多