在《深入理解計算機系統》一書中提到,行程虛擬記憶體中的stack和heap區都是使用匿名檔案映射的,且使用二進制零覆寫對應的物理記憶體;
可是在C的使用中,malloc出來的空間,其內容是未知的,包括堆疊上的空間,如果你不初始化,它的內容也是未知的,并非是0,請問書上的話該怎么解釋呢?
uj5u.com熱心網友回復:
是linux系統下嗎?linux系統下的話應該是0的uj5u.com熱心網友回復:
另外書上說過了,在588頁,malloc不初始化它回傳的記憶體,那些需要已經初始化的動態記憶體的應用程式可以使用calloc,它將分配的記憶體初始化為0。二進制零覆寫犧牲頁面是發生在CPU第一次參考這樣一個區域內的虛擬頁面的時候的。轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/69384.html
標籤:應用程序開發區
上一篇:Linux下信號編程的問題:為啥兩次執行結果不一樣呢? 求高手指點
下一篇:mac的終端地址錯誤
