2016-09-15 140 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

相關問題