我想一次處理整行的二維數組中的數據;是這樣的:在二維數組中處理數據
{
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中是否類似於上面的可能?
我想一次處理整行的二維數組中的數據;是這樣的:在二維數組中處理數據
{
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中是否類似於上面的可能?
要初始化一個二維數組:
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_Array[0][4] = {0x12, 0x3E, 0x32};
一方面你有一個uint8,另一方面是一個uint8數組。這是行不通的!
可以使用的形式
<array> = {0x12, 0x3E, 0x32};
只初始化數組。要設置數組的元素,您必須逐個設置它們。
2d_Array[0][1] = 0x12;
2d_Array[0][2] = 0x3E;
2d_Array[0][3] = 0x32;
等
PS你不能與2
開頭的變量名。
是的,這個我知道上面的方法進行初始化,但我想根據我的應用程序中使用一個接一個。 – user3665714
@ user3665714很好,但*數組不允許作爲C *中的左值。它們可以如此處所示進行初始化。否則你就是元素和循環,如果你真的*創造性的話就是'memcpy'。 – WhozCraig
第一錯誤你的程序是變量名 = 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的,0×17,0xE4};
陣列的行可僅使用,同時聲明數組作爲
uint8 Array[5][4]={ {0}
{0x12, 0x3E, 0x32}
{0x5F, 0x17, 0xE4}
};
是的,這個我知道,但我想根據我的應用程序一一使用它 – user3665714