아래의 make_quad() 함수에서 quad_t 구조체의 vertex_color 배열에 대한 기본값을 어떻게 설정합니까?함수 내에서 구조체 배열을 초기화하는 방법은 무엇입니까?
/* RGBA color */
typedef struct {
uint8_t r,g,b,a;
} rgba_t;
/* Quad polygon - other members removed */
typedef struct {
rgba_t vertex_color[ 4 ];
} quad_t;
한편, 함수하고 쿼드 초기화하기 : 분명히
quad_t *make_quad() {
quad_t *quad = malloc(sizeof(quad_t));
quad->vertex_color = ??? /* What goes here? */
return (quad);
}
내가 이런 식으로 작업을 수행 할 수 있습니다
quad->vertex_color[ 0 ] = { 0xFF, 0xFF, 0xFF, 0xFF };
...
quad->vertex_color[ 3 ] = { 0xFF, 0xFF, 0xFF, 0xFF };
그러나이 :
quad->vertex_color = {
{ 0xFF, 0xFF, 0xFF, 0xFF },
{ 0xFF, 0xFF, 0xFF, 0xFF },
{ 0xFF, 0xFF, 0xFF, 0xFF },
{ 0xFF, 0xFF, 0xFF, 0xFF }
};
을 ... 결과는 "오류 : expe '{'토큰 "앞에 표현식을 사용했습니다.
수정 : 몇 가지 오타가 수정되었습니다.
Missign 세미콜론을 쓰기로 더 나은 것 [4]? – zoli2k