操纵2D阵列中的数据

时间:2014-06-05 05:56:57

标签: c

我想一次一行地操纵2D数组中的数据;像这样的东西:

{
uint8 2d_Array[5][4] = {0};

2d_Array[0][4] = {0x12, 0x3E, 0x32};  // <-- Error here.
2d_Array[1][4] = {0x5F, 0x17, 0xE4};
...
}

但是,上面的代码会出错: Expected expression before '{'

在C中是否有类似上述内容?

4 个答案:

答案 0 :(得分:1)

初始化2D数组:

uint8 2d_Array[5][4] = 
   {
      {0x12, 0x3E, 0x32, 0},   // 2d_Array[0][0-3]
      {0x5F, 0x17, 0xE4, 0},   // 2d_Array[1][0-3]
       ...
      {0, 0, 0, 0}             // 2d_Array[4][0-3] 
   };

或者,或许:

   memcpy(2d_array[0], "\x12\x3E\x32", 3);
   memcpy(2d_array[1], "\x5F\x17\xE4", 3);

或者,或许(如果你想在每个末尾复制'\ 0'):

   memcpy(2d_array[0], "\x12\x3E\x32", 4);
   memcpy(2d_array[1], "\x5F\x17\xE4", 4);

答案 1 :(得分:0)

2d_Array[0][4] = {0x12, 0x3E, 0x32};

一方面你有一个uint8,另一方面有一个uint8数组。这不起作用!

答案 2 :(得分:0)

您可以使用表单

<array> = {0x12, 0x3E, 0x32};

仅用于初始化数组。要设置数组的元素,您必须逐个设置它们。

2d_Array[0][1] = 0x12;
2d_Array[0][2] = 0x3E;
2d_Array[0][3] = 0x32;

PS 您不能拥有以2开头的变量名称。

答案 3 :(得分:0)

程序的第一个错误是变量名称 = 2d_Array 第一个字符应为字母或下划线Refer

初始化/存储二维数组中的值

uint8 2d_Array[5][4] = {0};            //This initializes all the elements of array to 0
2d_Array[0][4] = 0x12;                 // Assigns value 0x12 to the element in of 0th row & 4th column

以下初始化错误,

数组1 = {0x5F,0x17,0xE4};

只有在将数组声明为

时,才能使用上述方法初始化数组的行
uint8 Array[5][4]={ {0}
                       {0x12, 0x3E, 0x32}
                       {0x5F, 0x17, 0xE4}
                   };