看板 C_and_CPP 關於我們 聯絡資訊
先講一下 main int main(int argc, char **argv[]) { int x; x = 0; func(argv[1]); func(argv[1]); func(argv[1]); x = 1; printf("x is 1\n"); printf("x is 0\n"); } 假設現在改成這樣 那麼每一次 function call, 在 stack 上的 return pointer 應該都是不一樣的吧 ? 這邊可理解嗎 ? 但是每次呼叫所有其他的條件都一樣 如果你能夠把超出 array 範圍之外, stack 上的東西都印出來 是不是能觀察到些什麼 ? 知道了 return pointer 存在哪 每次 increment 是多少之後 把 main 復原, 接下來你就可以用你的 ret 指標改改看 對他加上不同的 increment 是不是有你預期的行為 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.51