2015-02-10 59 views
-1

你能幫我理解關於結構的一些東西嗎?結構返回和主內部另一個函數的比較

我已經創建了兩個帶有元素的結構,這裏我在每種情況下都有一個。我有一個稱爲「函數」的函數,用於計算第一個結構struct_a的元素並返回struct_a。

當我編譯下面的代碼,我收到兩個警告: 警告:返回時將整數指針不進行強制轉換 警告:函數返回局部變量的地址

我該怎麼辦錯了嗎?

現在我想在main中調用這個結構,並將這個元素放到另一個結構中。

首先,這是正確的方式,我稱之爲主?或者我應該提出一些觀點?

目標是:在主內部,我想把「struct_a」的值放到結構「car_a」中。有什麼建議嗎?

struct characteristics 
{ 
    int element ; 

}; 

struct car type = {int alpha}; 

int function(){ 
    struct characteristics struct_a[10]; 
    sruct_a[2].element_a = var; 

    return struct_a; 
} 

int main(){ 

    function(); 
    struct characteristics struct_a[10]; 

    car.alpha = struct_a[2].element_a; 

} 
+0

如果該函數應該返回一個結構,爲什麼要定義它返回一個int?另外,var沒有定義,請提供完整的代碼。 – Leeor 2015-02-10 23:17:55

+0

這個'car.alpha = struct_a [2] .element_a;'是錯的,你還沒有初始化'struct_a'。顯然你不知道範圍是什麼,但我猜測。 – 2015-02-10 23:20:06

+0

首先鍵入您的結構 - 事情讀得更好 – pm100 2015-02-10 23:20:12

回答

0

,因爲你定義struct_acharacteristics結構的陣列,你得到的警告,這意味着struct_a是指針(地址)到數組中的第一個結構,而功能function()期待迴歸值爲int

您需要的function()返回類型和你正在返回變量類型相匹配。

還有一些其他的問題w /代碼,我不完全確定爲什麼struct_a首先被定義爲一個數組,但也許這會讓你開始在正確的方向。

+0

謝謝@ shoul25。在第一個結構中我有更多的元素。通常將其定義爲: 結構特徵 { \t \t int element; \t \t int element1; \t \t int element2; \t \t char element3 [10]; }; 這裏確實有一個char數組。有沒有一種方法可以在主體中檢索這種結構?我應該如何匹配返回類型的函數()與返回的變量? – 2015-02-11 08:27:28

相關問題