2016-09-15 97 views
-2

我有一个结构与日期和时间。C:不兼容指针整数转换

struct datetime{ 
int hour; 
etc...} 

当我尝试将正确的小时分配给自己的struct-hour时,出现错误。

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

dt->hour = tm_struct->tm_hour; 

首先,我得到的第一行不兼容的指针转换错误,然后我得到关于使用tm_struct.tm_hour,而不是->错误。

任何帮助,将不胜感激:)

+4

' - >'只能用于指针。你的'tm_struct'不是一个指针。 – AnT

+0

'dt-> hour = tm_struct-> tm_hour;' - >'dt-> hour = tm_struct.tm_hour;' – chux

+1

我正在投票结束这个问题,因为它没有显示任何结果,我很确定那里有很多资源。 – gsamaras

回答

0

localtime期望一个指针time_t作为其参数。相反,您正在传递time_t价值本身,这是您的第一个问题的根源。通常,因为这样你将不得不引入一个中间命名time_t对象持有的time

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

阻止你使用你原来的单行结果。

但是,通过使用复合文字你仍然可以表达它作为一个班轮

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

,如果你愿意的话。

+0

欢呼声,学到了新的东西! – Rodbjartson