C 程式設計師必須知道的5大記憶體區域

2021-07-07 08:46:49 字數 402 閱讀 9267

放置:全域性變數。

特點:全域性變數在函式返回時,不會消失,整個程式都能訪問它,這導致**容易出bug,更難以理解和維護。所以盡量放堆中能夠解決該問題。

放置:除了其他區域的剩餘區域。

特點:1.可將堆視為大記憶體塊,您必須保留這些記憶體塊的位址,將其儲存在指標鐘,不再使用時丟掉。

2.只有有權訪問指標的函式才能訪問它指向的資料,這提供了控制嚴密的資料介面,消除了函式意外修改資料的問題。

3.使用後的堆沒有釋放,會造成memory leak記憶體洩露,這個問題是c++程式設計師必須重視的。(許多程式在執行過程中記憶體占用原來越大,直至記憶體耗盡,就是這樣造成的。)

放置:用於內部管理,如跟蹤棧頂和指令指標等。 **

放置:區域性變數,函式引數。

特點:不會持久化,函式返回時,區域性變數丟失。

程式設計師必須知道的10大基礎實用演算法

詳細介紹 廣度優先搜尋 戴克斯特拉演算法 dijkstra s algorithm 是由荷蘭計算機科學家艾茲赫爾 戴克斯特拉提出。迪科斯徹演算法使用了廣度優先搜尋解決非負權有向圖的單源最短路徑問題,演算法最終得到乙個最短路徑樹。該演算法常用於路由演算法或者作為其他圖演算法的乙個子模組。該演算法的輸入...

程式設計師必須知道的延遲時間

l1快取 0.5ns 轉移 分支 5ns l2快取 7ns 14倍l1快取 加鎖 解鎖 25ns 訪問記憶體 100ns 20倍l2快取,200倍l1快取 1k位元組壓縮 zippy 3ns 前兆網絡卡上傳送1k位元組 10us ssd隨機讀4k資料 150us 從記憶體順序讀1mb資料 250us...

程式設計師必須知道的Oracle索引知識

simon 發表於 2012 11 7 標籤 oracle 資料庫優化 程式設計師 索引 閱讀 878 次 關聯式資料庫的精髓就是通過關係表進行規範化的資料儲存,通過各種表連線技術和各種型別的索引技術來進行資訊的檢索和處理。合理的索引是保證各種操作快速 高效的關鍵。據統計,與資料庫有關的效能問題,7...