我試圖用指定的初始化程序初始化const struct
。但是,其中一個struct
元素是一個固定寬度的數組。我已經有了我想用適當大小的另一個固定寬度數組初始化數組的內容。在指定的初始化程序中複製數組
有沒有辦法用指定的初始化工具來做到這一點?下面演示了一個我試圖完成的簡單(失敗的例子)。
struct foo {
uint8_t array1[4];
uint8_t array2[4];
}
uint8_t array[4] = {
1, 2, 3, 4
};
struct foo const bar = {
.array1 = array, // incompatible pointer to integer conversion
.array2 = { *array } // only copies the first element
};
我假設'struct foo'是用'array1'和'array2'定義爲'int [4]'?如果數組被定義爲指針,它會工作:'int * array1'。但顯然你會以這種方式失去信息。 – Kninnug
@Kninnug,數據將被共享,而不是複製,但也許沒關係。 –
你可以一個接一個地做,但有點難看,不夠健壯。 –