2013-11-21 2 views
-1

를 찾을 수 없습니다.구조체의 멤버는 나는 다음과 같은 구조체가

나는 이런 식으로 정점을 MALLOC :

vertex_t * vertex[G->vertices]; 
    for(i=0; i < G->vertices; i++) 
    { 
     vertex[i] = (vertex_t*)malloc(sizeof(vertex_t)); 
    } 

그래서 나는 구조체에서 매트릭스를 만들 수 있습니다.

vertex[i]->visited 
vertex[i]->weight 
vertex[i]->prev 

나는 다음과 같은 오류가 계속 : 그때 내가 이렇게 생성 기능을 통해 그들에게 전화

error: ‘vertex_t’ has no member named ‘visited’ 
error: ‘vertex_t’ has no member named ‘weight’ 
error: ‘vertex_t’ has no member named ‘prev’ 

사람이 내가이 작업을 수행하지 못할 이유를 내가 이해하는 데 도움이 수 있습니까?

+7

그건; 회원은 그런 식으로 초기화 할 수 없습니다. –

+0

그래서 나는 그것들을 0과 FLT_MAX와 동일하게 만들 수 없습니까? – user081608

+0

@ user081608 : 할 수 있습니다. 그러나 실제로는 'vertex_t'를 만들었습니다 : vertex_t v; v.visited = 0; v.weight = INT_MAX; ' – Zeta

답변

1

Okay so I can do it after the for loop in which I malloced it?

당신은 루프에서 을 더 나은 할 것입니다.

vertex_t *vertex[G->vertices]; 
    for (i = 0; i < G->vertices; i++) 
    { 
     vertex[i] = malloc(sizeof(vertex_t)); 
     vertex[i]->visited = 0; 
     vertex[i]->weight = FLT_MAX; 
    } 

또는 제타의 제안에 따라 : 구조체 정의가 유효하지 않습니다

vertex_t vertex[G->vertices]; 
    for (i = 0; i < G->vertices; i++) 
    { 
     vertex[i].visited = 0; 
     vertex[i].weight = FLT_MAX; 
    }