我正在解決一個測試問題,我不確定是否有正確的答案。問題是:如果我在32位操作系統下運行代碼,在函數hook()中從函數malloc()返回的時刻,堆棧中將分配多少空間。還有一個假設,即所有需要的內存都被分配了。堆棧上分配多少空間
…char A[1000000]…
int hook() {char C[2000000]; …
ptr_char2 = (char) malloc (5000000)); /*Hi guys, how much memory do I have now?*/……
}
int main() {
char B[3000000];……
ptr_char = (char*) malloc (4000000));
hook();…
}
我知道在堆棧上存儲靜態分配的變量。動態分配在堆上。我試圖計算字符A(0.9MB)+字符B(1.9)+字符C(2.8),大約需要5.6MB。但正確的答案是以下1MB,5MB或9MB之一。有人可以幫我解決我犯的錯誤嗎?先謝謝你。
你應該在問題中包含代碼*逐字*,請相應編輯,謝謝! –
你好,歡迎來到Stackoverflow。本網站提供問題和答案,以便他們可以在未來對其他人有用。爲此,您需要發佈實際的代碼,而不是鏈接到它或它的圖像。 – spectras
好吧,我只是把問題的截圖,但我試圖編輯它。抱歉。 – Kandri6