2013-06-13 5 views
4

함수 'front'의 잘못된 점은 무엇입니까? 내 배열의 특정 줄에 포인터를 보내서 읽고 편집하고 싶습니다.구조체의 배열에 포인터 전달

struct queue 
{ 
    char itens[LN][CL]; 
    int front,rear; 
}; 


char *front(struct queue * pq) 
{ 
    return pq->itens[pq->front+1][0]; 
} 

답변

7

현재 행에 대한 포인터가 아닌 char을 반환합니다. [0]을 벗으십시오 :

char *front(struct queue *pq) 
{ 
    return pq->itens[pq->front+1]; 
} 
+0

2 차원 배열에서도 사용할 수 있습니까? (업데이트 : 가능) – gzm0

+0

예, 작동합니다. –

+0

너무 잘 작동했습니다! 감사! – kreis

5

당신은 그 주소를 사용하지 않고 문자에 액세스하고 있습니다. 용도 :

&(pq->itens[pq->front+1][0]) 

외부 괄호는 선택 사항입니다.

+0

이 답변은 내 것과 동일하며 올바르게 작동합니다. 그것은 단지 더 많은 타이핑 일뿐입니다. –

+0

@CarlNorum 네, 정말로. 나는 그것이 맛의 문제라고 생각한다. – gzm0

+1

@ gzm0 괄호는 필요 없습니다. – ouah

관련 문제