1. 程式人生 > >返回一個棧中資料的技巧

返回一個棧中資料的技巧

返回一個棧中資料的技巧

struct mystruct {
    int id;
    int current_status;
};

struct mystruct get_stat() {

    struct mystruct st;

    st.id = get_current_id();
    st.current_status = get_current_status();

    return st;
}

上述程式碼中定義的函式返回一個區域性變數,使用一個變數來儲存返回值就不會產生問題,畢竟在接收 get_stat 函式的返回值時,棧中的資料仍舊有效。

你可以使用如下程式碼來呼叫上面定義的函式:

struct mystruct st = get_stat();

這樣資料就傳遞到了呼叫者的作用範圍內了,避免了動態分配記憶體帶來的損耗,是一個很好的技巧。