我想一次一行地操纵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中是否有类似上述内容?
答案 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}
};