聽說的一道google面試題

學識都 人氣:1.25W


1)堆與棧的區別?
2)如何判斷棧分配內存的方向(向上/向下)
3)如何最快的判斷棧的容量(不要用遞歸和循環)

聽說的一道google面試題

---------------------------------------------------------------------

2)用函數,返回函數內的局部變量地址,和發起調用的函數內局部變量地址比較
3)這個只想出這一個方法,windows下,讀取可執行文件格式裏有“保留堆棧大小”的屬性,應該可以判斷棧的容量

--------------------------------------------------------

樓主可有更好的答案?

--------------------------------------------------------

1、棧,先進後出,這是主要區別。棧用於函數內臨時變量,堆用於動態分配內存。
2、用函數,同上
3、等待答案。


--------------------------------------------------------

1, 堆是堆,棧是棧。如果有人很認真的問你是否會區別土豆與黃瓜,你是什麼感覺?
2,現在的機箱很多都支持橫放與豎放的,這個不太好說吧
3,如果說明書沒有標明相應參數的話,一般測試容量最好的工具是量杯。


--------------------------------------------------------

1.堆是扔個東西進去或者取出來就要重排序放好的,棧是隻能扔在上面從上面取的~
個東西進去再看內存新地址和原地址(前提是能直接訪問內存...,不同的編程語言有規定各自標準庫實現棧的方向,這個要看編程語言的`文檔)
3.定義棧的時候應該要定義棧的當前length和每單位大小的,乘下

--------------------------------------------------------

1. 棧是數據的存取方法,先進後出;堆是數據的排列方法,用2叉樹定義就是,子節點都必須大於(或都小於)父節點。堆和棧說的是兩碼事。
2. 函數,同上的上
3. 那要看用什麼存儲方式了,如果用數組(或其他靜態的連續的存儲方式)存儲數據,最大容量你定義多少就是多少,要得到已用的容量,用尾地址減首地址在加1就是了;用鏈表(或其他動態的非連續的存儲方式),最大容量就是就是程序自己定