C 二维数组中的数据处理

C 二维数组中的数据处理,c,C,我想在2D数组中一次处理整行数据;大概是这样的: { uint8 2d_Array[5][4] = {0}; 2d_Array[0][4] = {0x12, 0x3E, 0x32}; // <-- Error here. 2d_Array[1][4] = {0x5F, 0x17, 0xE4}; ... } 但是,上面的代码给出了一个错误:在“{”之前应该有一个表达式 在C中是否可能出现类似于上述的情况 2d_Array[0][4] = {0x12, 0x3E, 0x32}; 一边是

我想在2D数组中一次处理整行数据;大概是这样的:

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

2d_Array[0][4] = {0x12, 0x3E, 0x32};  // <-- Error here.
2d_Array[1][4] = {0x5F, 0x17, 0xE4};
...
}
但是,上面的代码给出了一个错误:在“{”之前应该有一个表达式

在C中是否可能出现类似于上述的情况

2d_Array[0][4] = {0x12, 0x3E, 0x32};
一边是一个uint8,另一边是一个uint8数组。这无法工作!

您可以使用表单

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


PS变量名不能以2开头。

要初始化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);
程序的第一个错误是变量名=2d\u数组 第一个字符应该是字母或下划线

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

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
下面的初始化是错误的

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

只有在将数组声明为


是的,这我知道,但我想根据我的应用程序一个接一个地使用它。@user3665714很好,但数组在C中不允许作为左值。它们可以按此处所示进行初始化。否则,你就要进行元素和循环,如果你真的很有创意的话,请记住。是的,我知道,但我想根据我的应用程序一个接一个地使用它
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
uint8 Array[5][4]={ {0}
                       {0x12, 0x3E, 0x32}
                       {0x5F, 0x17, 0xE4}
                   };