章节大纲

  • 要成功完成此任务,必须理解当 printf() 函数在 myprintf() 内部被调用时的栈布局。下图描述了栈布局。
     
    图 1:当 printf() 在 myprintf() 内部被调用时的栈布局
     
    我们有意在 main 和 myprintf 函数之间放置了一个没有用的栈帧,但它没有显示在图中。在开始这项任务之前,你需要回答以下问题(请在你的实验报告中写下你的答案):
     
    • 问题1:标记为 ❷ 和 ❸ 的位置的内存地址是什么?
    • 问题2:我们需要多少个 %x 格式说明符才能将格式字符串参数指针移动到 ❸?记住,参数指针从 ❶ 上方的位置开始。