2016-09-15 2 views
-2

구조체에 날짜와 시간이 있습니다.C : 정수 변환에 호환되지 않는 포인터

struct datetime{ 
int hour; 
etc...} 

정확한 시간을 구조 시간에 할당하려고하면 오류가 발생합니다.

struct tm tm_struct = *localtime(time(NULL)); 

dt->hour = tm_struct->tm_hour; 

먼저 나는 그때 tm_struct.tm_hour를 사용하는 대신 ->에 대한 오류를 얻을 첫 번째 줄에 호환되지 않는 포인터 변환 오류가 발생합니다.

어떤 도움을 주시면 감사하겠습니다 :)

+4

'->'는 포인터와 함께 만 사용할 수 있습니다. 당신의'tm_struct'는 포인터가 아닙니다. – AnT

+0

'dt-> 시간 = tm_struct-> tm_hour;'->'dt-> 시간 = tm_struct.tm_hour;' – chux

+1

아무런 노력도 보이지 않기 때문에이 질문을 주제로 끝내기로하겠습니다. 그곳에는 많은 자원이 있습니다. – gsamaras

답변

0

localtime는 인수로 time_t포인터을 기대하고있다. 대신 첫 번째 문제의 근원 인 time_t 값 자체를 전달합니다. 일반적으로이 때문에 당신은 원래 한 줄을 사용하지 못하도록 time

time_t t = time(NULL); 
struct tm tm_struct = *localtime(&t); 

의 결과를 저장하는 중간 이름 time_t 개체를 소개 할 것이다.

하지만 여전히 한 줄

struct tm tm_struct = *localtime(&(time_t) { time(NULL) }); 

당신이 그렇게 원하는 경우로 표현할 수복합 리터럴을 사용하여

.

+0

건배, 새로운 것을 배웠습니다! – Rodbjartson

관련 문제