函数栈平衡跟踪

例子:


#include "stdafx.h"
#include <string.h>

struct stu{
    char name[20];
    int age;
    char* addr;
};

int inCall (char c,int n,char* hi, stu stu1){
    int locInt = 0x1234;
    char* locStr = "here i am";
    printf("%c\t0x%x\t%s\t0x%x\t%s\n",c,n,hi,locInt,locStr);
    printf("%s\t%d\t%s\n",stu1.addr,stu1.age,stu1.name);
    return 20;
}

void main()
{
    stu stu1;
    memset(&stu1,0,sizeof(stu1));
    memcpy_s(stu1.name,strlen("ZhangSan"),"ZhangSan",strlen("ZhangSan"));
    stu1.age = 0x30;
    stu1.addr = "Beijing";

    char* hi = "how are you?";
    inCall('A',0x70,hi,stu1);
    getchar();
}

 

  1. main函数的执行过程:

 栈空间:

  2.inCall函数的执行过程和栈空间:

  栈空间:

posted on 2016-05-28 17:29  寻步  阅读(286)  评论(0编辑  收藏  举报