→ stupid0319: 放在memory stack,大概是當前ebp-4的位置吧 12/21 22:54
→ stupid0319: 而printf()中有區域變數的話,便會蓋過去的樣子 12/21 22:56
推 holik0123: 這應該rodata吧 12/21 23:04
→ stupid0319: printf含數的第一個區域變數有使用的用,str就被改了 12/21 23:06
→ loveflames: 這例子跟rodata無關 12/21 23:10
→ loveflames: 主管是要考你語言以外的底層機制嗎,如果不是就很雷 12/21 23:12
→ loveflames: 喔 12/21 23:12
推 LPH66: 如果 fun() 裡改成 char *str = "Hello"; 才可能跟 rodata 12/22 02:21
→ LPH66: 有關, 這邊這個寫法是確定一定是區域陣列變數 12/22 02:22
推 boss0405: 哪家主管啊...基本觀念耶... 12/22 13:21
→ loveflames: 如果是考語言以外的底層機制,那主管或許很神 12/22 13:34
→ loveflames: 但如果不是,這公司不去為妙,太雷 12/22 13:34
→ Schottky: 我不知道你們會不會,但我被考這題一定會問為什麼要這樣 12/22 13:42
→ Schottky: 考,順便問一下貴公司是不是常這樣寫,看看面試官程度 12/22 13:42
→ Schottky: 有趣的是... 面試官常常一問三不知,只說題目是從網路上 12/22 13:43
→ Schottky: 找來的,正確答案就是這樣但為什麼他不知道。耶嘿~ 12/22 13:44
→ hylkevin: 題目應該char *str[] = {"Hello"}; return str[0];才對 12/22 15:00
→ hylkevin: 吧? 12/22 15:00
推 b0920075: 編譯預設是開啟canary,所以ebp - 0x4應該會放canary才 12/22 15:39
→ b0920075: 對XDDD 12/22 15:39
推 jasonwu23: 考這種另類智力測驗實在沒什麼營養 12/22 18:47
→ nullptr: 塊陶啊 01/04 19:34