引用:
作者booger
1.問個更白痴的問題,function會使用stack儲存,不是因為function本身只是個位址嗎?
2.那麼function本身的區域變數不也是存在data段...之類的?
3.請問「被白痴覆寫」指的是哪種情況?
|
1. 是我白痴, 寫太短了

不好意思, 讓你誤會了,
我指的是 function 內的變數, 因為題目是字串
字串會在這二個地方出現, globe 和 local
2. 不是, 是在 stack, 你用 debug tool 像 GDB 去看, 你就會看到..
3. 有人的 Pointer 亂掉, 被指到你的字串位址, 或明明 255 大小字串, loop 個 256
最後一個字會蓋到下一個變數, 至於是哪一個, 看 link 完後的 map 檔,
不過通常是你 code 的下一個
至於你說的 function 是個位址, 是的, 是個位址, 由 link 決定放那, 但因為是程式碼,
所以本體程式碼會放在 text section