我用以下方法判断栈的生长方向,各位看看有没有问题. 思想test()中调用test_2(),因此,test()中的变量必先进栈;
void test(); void test_2(); int * t; int * k; int main(void) { test(); if (t<k){ printf("stack grow up"); }else{ printf)"stack grow down"); } return (1); } void test(); { int t_test=1; t=(int *)&t_test; //保存t_test地址到t test_2(); } void test_2() { int k_test=1; k=(int *)&k_test; //保存k_test地址 到k }
以上的方法只适合变量存在栈中的编译器
|