지정 초기화 프로그램을 사용하여 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, 데이터는 복사되지 않고 공유되지만 괜찮을 수도 있습니다. –
당신은 그것을 하나씩 할 수는 있지만, 그것은보기 흉하고 튼튼하지는 않습니다. –