编者:李国帅
背景:
计算机语言特别是C中,堆和栈始终是重要的概念,涉及到内存的操作,一不小心就会导致程序出错。
如果是直接读写错误还能直接发现,若是泄漏的问题恐怕要花大力气去查。
问题描述:
在许久以前有一个疑问,现在也无法解答,可能涉及到栈的分配。
在调试模式下,循环体内,栈内部的变量为何每次内存位置都相同?
栈内的变量仅被申请了一次吗?
请看下面的例子,输出结果发现,每次申请的栈的内存地址都相同,难道说,加载的时候已经设定好了分配好了吗?
也许有人知道答案,但对应用开发也不重要。
所需资源:
VC
例子:
2006-10-10 16:58
结果:
栈内部的变量为何每次内存位置都相同?
/*
0 00C0F708,00C0F714 00C0F720
1 00C0F708,00C0F714 00C0F724
2 00C0F708,00C0F714 00C0F728
3 00C0F708,00C0F714 00C0F72C
4 00C0F708,00C0F714 00C0F730
-------------
0 00C0F708,00C0F714 00C0F720
1 00C0F708,00C0F714 00C0F724
2 00C0F708,00C0F714 00C0F728
3 00C0F708,00C0F714 00C0F72C
4 00C0F708,00C0F714 00C0F730
-------------
0 00C0F708,00C0F714 00C0F720
1 00C0F708,00C0F714 00C0F724
2 00C0F708,00C0F714 00C0F728
3 00C0F708,00C0F714 00C0F72C
4 00C0F708,00C0F714 00C0F730
-------------
请按任意键继续. . .
*/